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/bash
CHEMIN='/opt/backup/mysql/migration/'
CHEMINDISTANT='svbdd:/opt/migration/'
LOGIN='root'
BDD=$1
if test -z $BDD;then
echo "la base de donneees n'a pas ete renseignee. Fin du script"
exit 65
fi
echo "traitement de la base de donnees $BDD"
read -s -p "Mot de passe MYSQL (compte $LOGIN)?" mdp
mysqldump $BDD --user=$LOGIN --password=$mdp --opt > $CHEMIN$BDD'.sql'
scp $CHEMIN$BDD'.sql' $CHEMINDISTANT
import :
#!/bin/bash
# Script permettant d'importer une base de donnees mysql a partir d'une sauvegarde
BDD=$1
CHEMIN='/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 65
fi
echo "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 adequat
echo 'drop database '$BDD';' > $SCRIPT
echo 'create database '$BDD';' >> $SCRIPT
mysql --user=$LOGIN --password=$mdp < $SCRIPT
# Remplissage de la base de donnees
mysql --user=$LOGIN --password=$mdp $BDD < $CHEMIN$BDD'.sql'
# Affichage du contenu de la base de donnees
mysqlshow --user=$LOGIN --password=$mdp $BDD