Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Requête entre 2 bases distantes


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Requête entre 2 bases distantes
    Bonsoir,
    Je cherche à transférer des valeurs d'une base vers une autre.
    J'alimente toutes les secondes une table d'une base locale qui est sur un site distant, connectée à internet en 4G.
    Je souhaite effectuer des requêtes en Python. Ces requêtes sont effectuées toutes 10 minutes.
    En local tout fonctionne mais je bloque pour la transmission des valeurs des requêtes sur une base de donnée MariaDB installée sur un serveur distant accessible par le web.
    D'avance merci pour l'aide… je ne trouve rien.
    Dimitri

  2. #2
    Nouveau Candidat au Club
    J'avais indiqué le langage Python mais une aide avec une requête SQL me suffirait.
    Je creuse mais rien ne fonctionne
    Help
    Merci

  3. #3
    Membre expérimenté
    Citation Envoyé par dim74 Voir le message
    transmission des valeurs des requêtes sur une base de donnée MariaDB installée sur un serveur distant accessible par le web.
    Dès fois un bon dessin c'est bien aussi
    Le savoir est une nourriture qui exige des efforts.

  4. #4
    Nouveau Candidat au Club
    Bonjour,
    Je me réexprime un peu mieux, car j'ai beau chercher !!

    J’ai une base de données distante MySql (MariaDB). Je souhaite créer une requête dans une table pour rechercher une valeur et insérer cette valeur dans une table d'une autre base de données MySql (MariaDB) distante.
    J’ai trouvé des exemples qui fonctionne uniquement sur des bases en réseau local mais par distante.
    Quelqu’un aurait il une idée pour m’aider ?
    D’avance merci !

  5. #5
    Expert éminent sénior
    Salut dim74.

    Si vous savez le faire en local, c'est exactement la même chose pour une base de données distante.
    La seule différence concerne, le nom de votre site distant ou son adresse IP, le nom de la base de données, le compte par lequel vous accédez et son mot de passe.
    Autrement, la différence est dans la manière dont vous vous connectez à ce serveur distant.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Nouveau Candidat au Club
    Salut
    Merci pour ta réponse, mais en fait je n'arrive pas :-(
    C'est peut être tout faux, mais il faut bien se lancer un jour ...

    Voici mon code Python :

    Code Python :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import pymysql
    import datetime
    #definition mysql local
    mysqlHost     =  "localhost"
    mysqlDatabase =  "**"
    mysqlUserName =  "**"
    mysqlPassword =  "**"
     
    #definition mysql serveur
    mysqlHost1     =  "adresse serveur accessible web"
    mysqlDatabase1 =  "***"
    mysqlUserName1 =  "***"
    mysqlPassword1 =  "***"
    # connection mysql
    try:
     sql_con = pymysql.connect(host=mysqlHost, user=mysqlUserName, passwd=mysqlPassword, db=mysqlDatabase)
     cur = sql_con.cursor()
    except pymysql.err.OperationalError:
     print("Erreur sur la Connection a la base de donnees!")
     quit()
    try:
     sql_con1 = pymysql.connect(host=mysqlHost1, user=mysqlUserName1, passwd=mysqlPassword1, db=mysqlDatabase1)
     cur = sql_con1.cursor()
    except pymysql.err.OperationalError:
     print("Erreur sur la Connection a la base de donnees!")
     quit()
    # ECRITURE TABLE
    champ_date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    sql_insert = "INSERT INTO mysqlHost1.nom_base.nom_table(date,valeur)SELECT date, MAX(vitesse) FROM table GROUP BY YEAR(Date), MONTH(Date), DAY(Date), HOUR(Date) ORDER BY Date DESC LIMIT 1;"
    cur.execute(sql_insert)
    sql_con.commit()

  7. #7
    Membre averti
    hello dim74,
    puisque la connexion fonctionne parfaitement sur ton site local , je te conseille de faire un petit script en local uniquement pour tester la connexion sur ton serveur distant ensuite y faire des insertions avant de revenir dans ton script global.
    les serveur étant différent rassure toi que cet utilisateur possède les droits d'access sur le serveur distant .
    et n’hésite pas a poster ton message d'erreur .
    A+
    www.etech-keys.com
    https://sms.etech-keys.com

    le boiteux qui suit le chemin devance le coureur qui s'en écarte .

  8. #8
    Nouveau Candidat au Club
    Hello Solo190,
    Tout fonctionne de ce côté j'arrive à insérer des valeurs dans la base distante.
    L'erreur est à la ligne 30 "cur.execute(sql_insert)"

    Erreur :
    pymysql.err.ProgrammingError: (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.vent_max_h1(date,vitesse_max_h1) SELECT date, MAX(vitesse) FROM anemo GROUP BY ' at line 1")

    D'avance merci de ton aide ;-)
    Dim

  9. #9
    Modérateur

    bonjour

    Et en supprimant mysqlHost1 dans le nom de la table ?

  10. #10
    Membre expérimenté
    Bonsoir,

    Citation Envoyé par dim74 Voir le message
    vent_max_h1(date,vitesse_max_h1) SELECT date, MAX(vitesse) FROM anemo GROUP BY '
    Cette requête n'est pas l'insert indiqué avant.
    Le fait que le message d'erreur est une erreur de syntaxe c'est une bonne nouvelle car ça signifie que la connexion est bonne

    Pouvez vous donner le code de la requête ?
    Le savoir est une nourriture qui exige des efforts.

###raw>template_hook.ano_emploi###