[MySQL] Automatiser un import/export de data entre 2 bases distantes ?

Automatiser un import/export de data entre 2 bases distantes ? [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 20-10-2005 à 09:54:28    

Bonjour à tous,
 
Bon j'explique la situation : j'ai un serveur A sur lequel tourne un site en php et une base MySQL, le tout en local (i.e. pas accessible depuis le web). Des utilisateurs locaux y accèdent et mettent à jour une partie des données de la base. J'ai un autre serveur B (détenu par un hébergeur) sur lequel il y a entre autres le site web de la boite mais également une copie du site du serveur A avec la même base de données. Sauf que les utilisateurs qui ont accès à la base du serveur B modifient une autre partie de la base (les données modifiables depuis le site A ne sont accessibles qu'en lecture seule au niveu du site B). Afin de synchroniser les infos il y avait un script qui était lancé tous les soirs depuis le serveur A. Une partie des fichiers (*.frm, *.MYD, *.MYI) composants la base MySQL étaient copiés via FTP vers le serveur B et le reste des fichiers étaient récupérés depuis le serveur B à destination du serveur A (oui je sais c'est horrible mais lisez qd même la suite svp :D).
Le problème : ca marchait bien jusqu'à maintenant, sauf que notre hébergeur a décidé de migrer notre site vers un autre serveur et de revoir leur politique de sécurité. Et notamment, ils ont viré le lien symbolique qu'il y avait entre la base de données et un répertoire accessible par FTP. Donc plus moyen de mettre à jour les bases par FTP.
Question : existe t-il un moyen facile (i.e. sans avoir à tout refaire et/ou à y passer des heures) de reproduire le système de "synchronisation  automatisé" des bases de données ? L'hébergeur m'a donné quelques pistes en disant de créer une page spéciale pour mettre à jour les données ou de faire ca avec PHPMyAdmin. Sauf que je vois pas comment automatisé le truc.
 
A ma décharge, je ne suis pas à l'origine de ce "truc" :o J'en ai hérité (bien malgré moi) quand je suis arrivé dans la boite, mais jusqu'à aujourd'hui je n'ai jamais eu trop a y foutre les paluches. Le problème c'est que MySQL/PHP/ et les développements Web c'est pas ma spécialité et que je n'ai que très peu de temps à consacrer à tout ca :/
 
Voilà je sais pas si c'est très clair (mais bon vu la manière de fonctionner de l'ensemble c'est difficile d'être clair :o) en tout cas merci d'avance à ceux qui auraient une idée lumineuse.
 
 :hello:

Message cité 1 fois
Message édité par BaCkFiRe le 20-10-2005 à 09:58:42

---------------
"I'm as mad as hell and I'm not going to take this anymore !"
Reply

Marsh Posté le 20-10-2005 à 09:54:28   

Reply

Marsh Posté le 20-10-2005 à 12:16:56    

Bonjour,
je t'envoi une url qui poura te servir pour faire un petit script d'automatisation d'export de tes donnees.
http://dev.mysql.com/doc/refman/5.0/fr/mysqldump.html
 
Pour ma part je m'en sert pour faire des dump de mes bases de donnees:
 
Pour creer un fichier dump complet concernant la base BDD(strcuture/valeur/index):
--> mysqldump -u USER -pPASS --opt BDD > ton_fichier_dump_date.dump
 
Pour recuperer le dump dans une base BDD qui doit bien sur etre vierge:
--> mysql -u USER -pPASS BDD < ton_fichier_dump_date.dump
 
Grace a l'url de la doc MySql de la commande mysqldump tu peux faire toutes  
les operations qui t'interressent.
Sauvegarder/recuperer toute les/la base(s), une partie, ...
 
Apres tu n'auras plus qu'a faire un petit script que tu pouras par la suite
lancer en tache automatise :)
 
Bonne lecture et bon courage
 
 
--  
Ben younes Ousama  
- Epitech 5eme annee
- Ingenieur developpement A2I (Alliance Internationale Informatique)
- Web: http://www.noofs.com  
 

BaCkFiRe a écrit :

Bonjour à tous,
 
Bon j'explique la situation : j'ai un serveur A sur lequel tourne un site en php et une base MySQL, le tout en local (i.e. pas accessible depuis le web). Des utilisateurs locaux y accèdent et mettent à jour une partie des données de la base. J'ai un autre serveur B (détenu par un hébergeur) sur lequel il y a entre autres le site web de la boite mais également une copie du site du serveur A avec la même base de données. Sauf que les utilisateurs qui ont accès à la base du serveur B modifient une autre partie de la base (les données modifiables depuis le site A ne sont accessibles qu'en lecture seule au niveu du site B). Afin de synchroniser les infos il y avait un script qui était lancé tous les soirs depuis le serveur A. Une partie des fichiers (*.frm, *.MYD, *.MYI) composants la base MySQL étaient copiés via FTP vers le serveur B et le reste des fichiers étaient récupérés depuis le serveur B à destination du serveur A (oui je sais c'est horrible mais lisez qd même la suite svp :D).
Le problème : ca marchait bien jusqu'à maintenant, sauf que notre hébergeur a décidé de migrer notre site vers un autre serveur et de revoir leur politique de sécurité. Et notamment, ils ont viré le lien symbolique qu'il y avait entre la base de données et un répertoire accessible par FTP. Donc plus moyen de mettre à jour les bases par FTP.
Question : existe t-il un moyen facile (i.e. sans avoir à tout refaire et/ou à y passer des heures) de reproduire le système de "synchronisation  automatisé" des bases de données ? L'hébergeur m'a donné quelques pistes en disant de créer une page spéciale pour mettre à jour les données ou de faire ca avec PHPMyAdmin. Sauf que je vois pas comment automatisé le truc.
 
A ma décharge, je ne suis pas à l'origine de ce "truc" :o J'en ai hérité (bien malgré moi) quand je suis arrivé dans la boite, mais jusqu'à aujourd'hui je n'ai jamais eu trop a y foutre les paluches. Le problème c'est que MySQL/PHP/ et les développements Web c'est pas ma spécialité et que je n'ai que très peu de temps à consacrer à tout ca :/
 
Voilà je sais pas si c'est très clair (mais bon vu la manière de fonctionner de l'ensemble c'est difficile d'être clair :o) en tout cas merci d'avance à ceux qui auraient une idée lumineuse.
 
 :hello:


 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed