Synchronisation MySQL local à public ? - SQL/NoSQL - Programmation
Marsh Posté le 09-02-2008 à 08:44:31
Il n'y a donc aucune saisie des internaute dans la base, c'est donc uniquement une base de consultation ?
Marsh Posté le 11-02-2008 à 23:46:00
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.
Marsh Posté le 12-02-2008 à 09:34:26
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
Marsh Posté le 12-02-2008 à 13:19:25
Le truc c'est que tout doit se faire de façon automatique, assez fréquemment (par exemple toutes les heures)
Marsh Posté le 12-02-2008 à 14:15:38
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...
Marsh Posté le 12-02-2008 à 14:26:30
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.
Marsh Posté le 12-02-2008 à 14:31:04
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 !
Marsh Posté le 12-02-2008 à 16:55:52
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
Marsh Posté le 12-02-2008 à 17:00:59
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...
Marsh Posté le 12-02-2008 à 21:42:00
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
Marsh Posté le 16-02-2008 à 01:22:02
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
Marsh Posté le 07-02-2008 à 22:31:46
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é ?