Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1777 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Synchronisation MySQL local à public ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Synchronisation MySQL local à public ?

n°1683702
bab
Posté le 07-02-2008 à 22:31:46  profilanswer
 

J'ai une interface web qui tourne en local et un site internet qui est hébergé en mutualisé chez OVH (tous 2 en PHP). Chacun des 2 utilisent la même base de données MySQL.
La base est mise à jour du coté local et je voudrais avoir les mêmes mises à jour sur le site internet.
Le plus gros problème c'est que je ne peux pas accéder à la base de données hébergées chez OVH depuis mon interface locale.
Je voudrais malgré tout que les 2 bases de données soient synchroniser plutot que de faire les mêmes MAJ de chaque coté.
 
Mon idée serait de faire toutes les X minutes un export de la base locale, de l'envoyer par FTP (automatiquement) sur le site internet et que celui-ci synchronise l'import avec sa base actuelle.
J'imagine qu'il existe une méthode pour faire ce genre de synchronisation mais je n'en trouve pas.
 
Vous avez une idée de la faisabilité ?

mood
Publicité
Posté le 07-02-2008 à 22:31:46  profilanswer
 

n°1683708
LePhasme
Les Belges domineront le monde
Posté le 07-02-2008 à 22:38:38  profilanswer
 

Tu peux faire ça avec un .bat

n°1684256
bab
Posté le 08-02-2008 à 21:27:33  profilanswer
 

un .bat avec du PHP ?!?  :heink:

n°1684333
yellu
Posté le 09-02-2008 à 08:44:31  profilanswer
 

Il n'y a donc aucune saisie des internaute dans la base, c'est donc uniquement une base de consultation ?

n°1685091
bab
Posté le 11-02-2008 à 23:46:00  profilanswer
 

Il n'y presque que de la consultation. La seule chose que les internautes peuvent faire, c'est supprimer dans une table qui gère les newsletters.

n°1685153
LePhasme
Les Belges domineront le monde
Posté le 12-02-2008 à 09:34:26  profilanswer
 

LePhasme a écrit :

Tu peux faire ça avec un .bat


Tu peux faire un script php si tu veux, le principe c'est de générer un export de la base, tu te connecte à ton compte ovh en ftp et tu upload le fichier.
Tu te connectes en ssh et tu fais un mysql -ulogin -ppass < monfichierdexport

n°1685295
bab
Posté le 12-02-2008 à 13:19:25  profilanswer
 

Le truc c'est que tout doit se faire de façon automatique, assez fréquemment (par exemple toutes les heures)

n°1685327
Mara's dad
Yes I can !
Posté le 12-02-2008 à 14:15:38  profilanswer
 

Normalement y'a la notion de réplication en MySql qui est faite pour ça.
Reste à savoir si tu as la main sur la conf du serveur MySql chez OVH.
Si c'est pas possible, il te reste la solution de faire toi-même la réplication.
En gros faire exécuter toutes les requêtes de MAJ de ta base locale sur la base distante, via un script PHP.
Depuis ton site local, tu n'as pas accès à ta base MySQL, mais tu peux appeler un script PHP chez OVH en lui passant les requêtes à faire tourner...

n°1685334
yellu
Posté le 12-02-2008 à 14:26:30  profilanswer
 

Une réplication mysql c'est peut être lourd pour des serveurs qui ne sont pas en reseau local.
Je te conseille de la faire via un script egalement.

n°1685338
Mara's dad
Yes I can !
Posté le 12-02-2008 à 14:31:04  profilanswer
 

La réplication MySql fait en gros ce que j'ai décrit, sauf que c'est l'esclave qui va lire les logs du maître.
Je ne vois pas en quoi le fait de ne pas être sur le même réseau peut poser problème, sauf si on n'a pas d'ip fixe, bien sûr !

mood
Publicité
Posté le 12-02-2008 à 14:31:04  profilanswer
 

n°1685452
yellu
Posté le 12-02-2008 à 16:55:52  profilanswer
 

La réplication mysql transfert les log binaire du maitre vers l'esclave en effet et je trouve ça crado de faire ça via la bande passante alloué au traffic web

n°1685455
Mara's dad
Yes I can !
Posté le 12-02-2008 à 17:00:59  profilanswer
 

OK.
Mais quelle bande passante va utiliser un script ?
Le log binaire, n'est rien d'autre qu'une liste de requêtes (Mysql 3.x,4.x,5.0).
A partir de MySql 5.1.? (pas encore stable) c'est plus tout à fait vrai. Mais personne n'utilise une version pas stable en prod...

n°1685562
yellu
Posté le 12-02-2008 à 21:42:00  profilanswer
 

le script tu peut le faire tourner a 2h du mat ça ne perturbera pas le traffic, la réplication c'est du pseudo temps réel donc même si c'est la même bande passante le script sera moins génant si les serveurs sont distants

n°1687209
naeh
Posté le 16-02-2008 à 01:22:02  profilanswer
 

bah le plus simple serait de faire un script en local qui fait un dump de la base toutes les X heures et se connecte au ftp du site pour deposer le dump.
 
faire un autre script sur le site qui lui regarde si un nouveau dump existe et si oui l'importe avec mysql -u user -p pass < fichier_dump.sql.
 
les 2 lancés par un cron a partir du local ou si ip fixe a partir du site en prod.
 
ce qu'il faut retenir c'est que le temps de transfert peut etre plus au moins long donc si le premier est lancé a une heure fixe le 2eme doit etre lancé regulierement et doit pouvoir savoir si le dump qu'il trouve n'est pas en train de se déposer (pour ne pas le prendre a moitié) genre calculer son md5_file faire un sleep de 5 secondes puis recalculer son md5 et si ça n'a pas bougé il commence l'import :)
 
la réplication je ne connais pas :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Synchronisation MySQL local à public ?

 

Sujets relatifs
Mysql 4.0 les requêtes imbriquées.Aide - PHP et MySQL
equivalent ORACLE de INTERVAL mysql[mysql] Mysql et espaces a la fin d'une chaine
Problème de connexion à une base de données MySQL[php / mysql] Numéros de page et tri sur champ date
configuration de mysql avec asterisk dans triboxBase mysql. transfere de local vers site.
[mysql] Requete avec moyenne avg 
Plus de sujets relatifs à : Synchronisation MySQL local à public ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR