IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

MySQL Discussion :

Accès à une base de données Mysql sur un windows depuis un appli web sous linux (raspian)


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Par défaut Accès à une base de données Mysql sur un windows depuis un appli web sous linux (raspian)
    Bonjour à tous,

    je ne sais pas si je post au bon endroit, mais vous me direz ...

    Voici mon problème :
    j'ai un appli web qui tourne sur un linux (raspian) qui accède à sa base de données Mysql en local, tout vas bien...
    Je voudrais maintenant pouvoir sauvegarder des données sur une base de données Mysql distante qui tourne sur un W10

    Voici la commande que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "SELECT * FROM T_UTILISATEUR" | mysql -u toto   --password="*****" -h ***.***.***.***:3306 -D db_grandmanitou
    et voici la réponse du serveur
    ERROR 2005 (HY000): Unknown MySQL server host '***.***.***.***:3306' (110)

    j'ai trouvé sur le net des exemples de paramétrage du serveur coté windows, mais je ne suis que développer alors j'ai pas du tout comprendre

    voici un lien que j'ai utilisé pour paramètrer Mysql cote windows


    Merci pour votre aide
    Christophe

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 799
    Par défaut
    Salut krzysiu.

    Normalement, cette question est à posé dans le forum php et non dans mysql.

    raspian = Raspberry Pi + Debian.

    En gros, tu veux communiquer entre deux ordinateurs, une raspberry et un windows 10, et je suppose dans le LAN de ton routeur.

    Citation Envoyé par krzysiu
    Je voudrais maintenant pouvoir sauvegarder des données sur une base de données Mysql distante qui tourne sur un W10
    La première question concerne le sens de votre sauvegarde.
    C'est depuis la rapsberry vers Windows ou depuis windows vers la rapsberry.

    Pourquoi je pose cette question ?
    Car selon le sens, il faut ouvrir le port 3306 (celui de MySql) vers Raspberry ou vers Windows 10, dans votre routeur

    Admettons que vous désirez rappatrier les données depuis la rapsberry mais en vous mettant sous windows.
    Il faut créer un script en php (sous windows), qui va faire les choses suivantes :
    1) la connexion vers rapsberry :
    --> le nom du compte (user) qui est déclaré dans phpmyadmin de votre raspberry.
    --> le mot de passe de ce même compte.
    --> le host (autre chose que localhost car comme son nom l'indique, il est local à votre ordinateur).
    --> le nom de votre base de données sur la raspberry.

    2) une autre connexion vers windows 10.
    --> le nom du compte (user) qui est déclaré dans phpmyadmin sous windows 10.
    --> le mot de passe de ce même compte.
    --> le host, ici vous pouvez mettre localhost car c'est local à votre ordinateur.
    --> le nom de votre base de données sous windows.

    --> http://php.net/manual/fr/pdo.connections.php

    3) ici vous devez traiter une grosse boucle sur une et une seule de vos tables.
    Depuis la connexion 1, vous récupérer une ligne d'une table depuis la rapsberry. Vous faites un select.

    Vous faites le passage de vos données dans des variables php. Normalement cela se fait par la variable "$row".

    Depuis la connexion 2, vous envoyez une ligne d'une table vers winows 10. Vous faites un insert.

    Et vous répétez cela, tant que vous avez encore des lignes à lire depuis la connexion 1.

    --> http://php.net/manual/fr/pdo.query.php

    --> http://php.net/manual/fr/pdo.exec.php

    4) vous fermez vos connexions.

    Pour que cela puisse fonctionner, vous devez aussi avoir les autorisations sous MySql sous Raspberry et sous windows.
    Deuxième question : avez-vous fait le nécessaire pour vos autorisations ?
    Et si oui, qu'est-ce que vous avez déclaré comme compte et avec quelle autorisations ?

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Par défaut
    Yo,

    Je vois pas de php là dedans.

    T'es sûr de ton IP ?
    Essaie sans le port ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Par défaut
    Après test : c'est sûrement le numéro de port qui te pose problème.

    De plus, enlève les guillemets de ta requête.

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut
    Si le but est juste de sauvegarder ta base de données, tu peux simplement sur ton raspian créer une tache planifiée tous les soirs utilisant mysqldump qui enregistre l'export en fichier .sql sur le réseau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/bin/mysqldump -u root --password=[root_passwd] [nom_bdd] > /mnt/[chemin_reseau]/backup/`date +\%d-\%m-\%y`/[nom_bdd].sql
    Si tu veux plutôt une réplication en temps réel entre les deux bases pour assurer une redondance regarde de ce coté là : http://www.responsive-mind.fr/replic...master-master/
    Dans tous les cas je ne conseille pas du tout la solution d'artemus du script qui lit une à une les lignes pour les ré-insérer de l'autre coté...

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 799
    Par défaut
    Salut gatsu3.

    Ta solution a surtout l'inconvénient de faire beaucoup de manipulation.
    Faire coté Raspberry un mysqldump, transférer le fichier vers windows, puis coté windows un mysql.

    Ma solution est plus simple car elle consiste à automatiser le transfert depuis une Raspberry vers windows.

    Si tu as une solution bien meilleur, je suis preneur.

    MySql sait gérer la communication interbase à la condition que ces bases soient sous le même SGBD.
    Quand il est dans deux SGBD, il ne sait pas le faire, d'où ma solution.

    @+

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut
    Le mysqldump est à mettre en crontab, il sera exécuté automatiquement à la fréquence voulue, et on peut écrire le fichier sql depuis linux vers windows via samba sans aucun souci.
    De la même façon on peut automatiser l'import du fichier sql sur la machine windows, ou simplement les stocker pour sauvegarde, comme il le précise et importer la version voulue si il faut restaurer.
    Donc absolument aucune manipulation à faire en dehors de créer les taches planifiées.

    MySql sait gérer la communication interbase à la condition que ces bases soient sous le même SGBD.
    j'ai un appli web qui tourne sur un linux (raspian) qui accède à sa base de données Mysql en local, tout vas bien...
    Je voudrais maintenant pouvoir sauvegarder des données sur une base de données Mysql distante qui tourne sur un W10
    C'est le même SGDB... c'est l'OS qui change, et la réplication en pose pas de soucis non plus dans ce cas là :
    https://dev.mysql.com/doc/refman/5.7...ion-can-mix-os
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Does replication work on mixed operating systems (for example, the master runs on Linux while slaves run on OS X and Windows)?
    Yes.

  8. #8
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 799
    Par défaut
    Salut gatsu3.

    Citation Envoyé par gatsu3
    C'est le même SGDB... c'est l'OS qui change, et la réplication en pose pas de soucis non plus dans ce cas là :
    Ma langue a fourché.
    Je voulais parler du même serveur MySQL.

    Quand on est dans le même serveur MySql, on peut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    insert into base2.arrive (`num`,`lib`)
      select tb1.id, tb1.val
      from       base1.depart as tb1
      inner join base2.lien   as tb2
      on tb2.rang = tb1.id;
    Au lieu de transférer la totalité de la table à chaque fois, il ferrait bien d'ajouter par exemple, la date du jour dans les lignes.
    Ainsi une ligne qui a été modifié aura la date du jour, et son extraction ne tiendra compte que des lignes ayant la date du jour.
    En conséquence de quoi, la volumétrie à transférer sera faible.

    @+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Par défaut
    Quand on est dans le même serveur MySql, on peut faire ceci :
    ...
    blablabla
    ...
    @+
    j'ai un appli web qui tourne sur un linux (raspian) qui accède à sa base de données Mysql en local, tout vas bien...
    Je voudrais maintenant pouvoir sauvegarder des données sur une base de données Mysql distante qui tourne sur un W10
    ?!

  10. #10
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Au lieu de transférer la totalité de la table à chaque fois, il ferrait bien d'ajouter par exemple, la date du jour dans les lignes.
    Ainsi une ligne qui a été modifié aura la date du jour, et son extraction ne tiendra compte que des lignes ayant la date du jour.
    En conséquence de quoi, la volumétrie à transférer sera faible.
    @+
    Il ne parle pas non plus de problème d'espace pour stocker les sauvegardes mais si tu y tiens mysql gère également les sauvegardes différentielles et incrémentielles...
    https://dev.mysql.com/doc/mysql-ente...cremental.html

    Pourquoi bidouiller avec des scripts quand des outils natifs sont mis à disposition et font très bien le boulot... ?

    @+

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Par défaut
    Bonjour à tous et merci de vos réponses,

    je n'ai pas encore eu le temps de lire en détail toutes vos réponses qui semblent répondre également a des questions que j'aurais pu vous poser ensuite.

    Mon problème pour le moment c'est de faire communiquer via le web un raspberry pi(raspian) sur un système autonome qui se connecte en 3g sur le web et un "serveur" sous W10 "classique". le RPI doit pouvoir envoyer une requete vers le Mysql du W10, et c'est là mon soucis (Mais il y a peut être la réponse dans vos messages)

    l'envoi de données, vous m'avez données quelques pistes et je vous en remercie

    C’était surtout pour vous remercier et je regarde ce soir en détail vos réponses

    Merci encore
    je vous tiens au jus
    Christophe

Discussions similaires

  1. Accés à une base de données Mysql
    Par astrotouf dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 19/01/2009, 11h10
  2. [Portlet] portlet avec un accès à une base de donné mysql
    Par prodit96 dans le forum Portails
    Réponses: 1
    Dernier message: 12/01/2009, 15h41
  3. [MySQL] Accés à une base de données MySQL
    Par apt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/10/2008, 19h35
  4. Accès à une base de données MySQL
    Par cybernikkos dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2007, 22h03
  5. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo