Accueil > Mysql, Ubuntu > Transert où migration de Mysql vers un autre serveur

Transert où migration de Mysql vers un autre serveur

J’ai il y a quelques jours fait le transfert d’un serveur Kimsufi qui hébergeait plusieurs sites vers un serveur plus puissant chez Dedibox.
Ce serveur Kimsufi contenait plusieurs sites, ainsi que la configuration de apache, mysql, ftp, bind etc…
Si vous avez plusieurs bases de données de créer sur mysql et plusieurs utilisateurs SQL avec les mots de passe associer, cela devient vite fastidieux et lourd de passer via phpmyadmin, et de sauvegarder chaque base de donnée à la main.
Avec cette méthode vous devriez re-créer chaque utilisateurs SQL, chaque base à la main en passant par phpmyadmin.
Soit de longues heures, et du temps perdu.

Voici une méthode bien plus rapide que j’ai utiliser pour gagner du temps, et éviter de s’arracher les cheveux pendant des heures (et consommer des litres de café (et / où) paquets de clopes).

Sur le serveur Kimsufi (où se trouve les bases SQL à transférer) j’ai stopper le programme MYSQL.
Soit via Ubuntu, la distribution que j’utilise :

sudo /etc/init.d/mysql stop

PS: avant de transférer les fichiers, le serveur de destination doit avoir mysql de stopper.

Donc faite un

sudo /etc/init.d/mysql stop

sur le serveur de destination aussi.

Ensuite, nous allons transférer le dossier MYSQL où se trouve toutes les bases, les utilisateurs, les mots de passe de MYSQL.

Pour ceci nous allons utiliser scp.

Pour information :

SCP (= Ssh CoPy) donne la possibilité de transférer des fichiers entre des machines via le protocole sécurisé SSH. C’est rapide et c’est fait en toute sécurité.

Allons y !

On commence par ouvrir une console (terminal), et on se place dans le répertoire où se trouve les fichiers mysql qui nous intéressent.

cd /var/lib/

Ensuite on transfert tout le répertoire /var/lib/mysql du serveur Kimsufi vers le serveur de destination.

sudo scp -r mysql/ root@88.191.X.Y:/var/lib/

Il faut bien sûr remplacer 88.191.X.Y par l’IP de votre serveur de destination (içi le début d’une IP Dedibox) et l’utilisateur SSH que vous utiliser sur le serveur de destination (içi root)

On aurai aussi pu taper cette commande directement sans changer de répertoire.

scp -r /var/lib/mysql root@88.191.X.Y:/var/lib/

L’option -r de scp permet de copier tout le contenu du répertoire mysql.

Soit la commande expliquer en détail :

scp -r /répertoire/source/ utilisateur_de_destination@IP_de_destination:/repértoire/destination/

Pour afficher toutes les options de scp taper :

man scp

Une fois le transfert terminer, il faudra modifier / restituer les droits à mysql de ce répertoire /var/lib/mysql/.

Soit, toujours sur une distribution Ubuntu :

sudo chown -R mysql:mysql /var/lib/mysql

Après ceci il vous faudra aussi récupérer votre ancien fichier de configuration mysql (my.cnf) qui se trouve dans /etc/mysql/ ainsi que le fichier debian.cnf qui contient l’utilisateur debian-sys-maint qui est créer automatiquement par défaut à l’installation de mysql-server.

Ce fichier est essentiel pour mysql. Sans lui, vous aurez une erreur qui dira que l’utilisateur debian-sys-maint à un mauvais mot de passe au démarrage de mysql.

Le fichier debian.cnf contient ceci en gros :

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = u1Yvjtcha5hNEq
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = u1Yvjtcha5hNEq
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

La première ligne indique de suite la couleur : # Automatically generated for Debian scripts. DO NOT TOUCH!

Donc ne pas modifier / toucher au fichier.

PS: le password crypter dans l’exemple est faux, donc inutile d’essayer de le décrypter.

Donc on transfert tout le répertoire /etc/mysql comme avant :

scp -r /etc/mysql root@88.191.X.Y:/etc/

Ensuite, si les répertoires qui contiennent vos sites sont déjà installer vous pouvez démarrer mysql, et me dire merci d’avoir gagner du temps.
:-)

sudo /etc/init.d/mysql start

En cas de problème, les commentaires sont là pour.

Enjoy !

Je vous recommande aussi la lecture des sujets suivants:

Catégories:Mysql, Ubuntu
  1. Pas encore de commentaire
  1. Pas encore de trackbacks