(Redirigé depuis DeL)
Retour : Page Principale > sommaire aide > sommaire aide-mémos

Aide-MĂ©mo pour la migration de bases Mysql


ATTENTION (2017-08-11) - la situation peut avoir changé depuis que ces informations ont été écrites


Cas du serveur Agathis

  • Se loguer en tant qu'admin : su - admin
  • Se rendre dans le dossier : /home/admin/script/mysql_transfert/
  • Éditer le script mysql_transfert.sh : vi mysql_transfert.sh
    • Indiquer l'adresse IP du serveur distant d'oĂą l'on veut rĂ©cupĂ©rer les bases
    • Indiquer le nom et le mot de passe de l'utilisateur pour la base de donnĂ©es locale et distante
  • CrĂ©er sur le serveur local une base de donnĂ©es du mĂŞme nom que celle qui doit ĂŞtre transfĂ©rĂ©e
  • Lancer le script : ./mysql_transfert.sh 5.5-test tb_eflore_test
  • Un fichier tb_eflore_test.sql doit maintenant ĂŞtre prĂ©sent dans le dossier : /home/admin/script/mysql_transfert/
  • Une nouvelle base tb_eflore_test doit maintenant exister dans l'instance de Mysql : 5.5-test

Script de transfert de base Mysql :
#!/bin/bash
# Script permettant d'importer les tables mysql
# A faire sur le serveur où se trouve la nouvelle base de donnée vide
# Arguments du script :
#   $1 : le nom de la base de données à transférer
ssh root@193.54.123.169 -i /home/admin/.ssh/id_rsa "/usr/local/mysql/bin/mysqldump $1 -u root -pmot_de_passe" > $1.sql
echo "Import en cours :"
/usr/local/mysql/5.5-test/bin/mysql --default-character-set=utf8 $1 -u root -pmot_de_passe < $1.sql


Accéder à un table distante
Solution utilisant le moteur FEDERATED : http://dev.mysql.com/doc/refman/5.0/fr/federated-use.html
  • sur le serveur maĂ®tre ajouter un utilisateur ayant comme adresse "Client" l'IP du serveur client
  • sur le serveur client crĂ©er une table avec la mĂŞme structure mais dont le engine vaut FEDERATED
  • dans le champ CONNECTION indiquer les paramètres de connexion

ATTENTION ! Un trop grand nombre de SELECT sur la table FEDERATED conduit (vérifié avec un client 5.6 et un serveur 5.1) à des erreurs SQLSTATE[08S01]: Communication link failure: 1158 Got an error reading communication packets - voir l'exemple ci-dessous pour un palliatif.

Exemple de la stratégie d'accès distant entre Agathis et Sequoia