Les bases de données mysql doivent migrer d’un serveur à un autre. L’opération est effectuée en plusieurs temps :
la base de données est exportée depuis le premier serveur dans un fichier bdd.sql
le fichier bdd.sql est recopié vers le second serveur
la base de données est (re)crée, puis le script bdd.sql est exécuté.
Pour récupérer les logins et les droits, vous devez auparavant avoir exporté puis importé la base mysql.
Les deux scripts fournis vous permettent d’automatiser de façon simple les opérations. Testé en réel : très pratique ! Mais vous pouvez améliorer le système... A vous d’adapter en fonction de vos configurations (la copie s’effectue ici par scp, mais vous pouvez faire ce que vous voulez).
migration :
#!/bin/bashCHEMIN='/opt/backup/mysql/migration/'CHEMINDISTANT='svbdd:/opt/migration/'LOGIN='root'BDD=$1if test -z $BDD;then echo "la base de donneees n'a pas ete renseignee. Fin du script" exit 65fiecho "traitement de la base de donnees $BDD"read -s -p "Mot de passe MYSQL (compte $LOGIN)?" mdpmysqldump $BDD --user=$LOGIN --password=$mdp --opt > $CHEMIN$BDD'.sql'scp $CHEMIN$BDD'.sql' $CHEMINDISTANTimport :
#!/bin/bash# Script permettant d'importer une base de donnees mysql a partir d'une sauvegardeBDD=$1CHEMIN='/opt/migration/'SCRIPT='/tmp/dropCreateDB.sql'LOGIN='root'if test -z $BDD;then echo "la base de donneees n'a pas ete renseignee. Fin du script" exit 65fiecho "traitement de la base de donnees $BDD"read -s -p "Mot de passe MYSQL (compte $LOGIN)?" mdp# Suppression de la base de donnees# Creation du script adequatecho 'drop database '$BDD';' > $SCRIPTecho 'create database '$BDD';' >> $SCRIPTmysql --user=$LOGIN --password=$mdp < $SCRIPT# Remplissage de la base de donneesmysql --user=$LOGIN --password=$mdp $BDD < $CHEMIN$BDD'.sql'# Affichage du contenu de la base de donneesmysqlshow --user=$LOGIN --password=$mdp $BDD