La semaine dernière, Blogmotion déménageait de serveur. Voici un petit guide de migration tranquille, pour limiter un maximum l’impact de ce changement qui peut se faire sans qu’une coupure ne soit ressentie par les visiteurs.
Ce guide concerne uniquement le changement d’adresse du serveur MySQL, un futur billet traitera du déplacement des données.
Ce guide concerne la plateforme WordPress, avec une base de données MySQL, le tout migrant depuis un serveur Linux Debian (dédié) vers un autre serveur du même type.
1 : Exporter la base de données
Si vous êtes sur un serveur mutualisé, vous devez exporter votre base avec un outil fourni par votre hébergeur, tel que PhpMyAdmin, mais vous devrez sûrement segmenter l’export à cause de la limitation de l’import par la suite (2 Mo par defaut).
Sur un serveur dédié, il vous suffit de lancer l’export de votre base de données via une connexion SSH (en root) :
mysqldump [base de données] -u [utilisateur sql] -p > /chemin/vers/export.sql
Ce qui peut par exemple être :
mysqldump blogbase -u bloguser -p > ./export.sql
2 : Envoyer l’export
Il nous faut maintenant envoyer l’export vers le nouveau serveur. Vous pouvez pour cela le faire via FTP, SFTP, HTTP, etc.
Mais la solution la plus adaptée dans ce genre de situation reste le transfert via la commande rsync.
Toujours en root :
rsync -e ssh /chemin/versexport.sql utilisateur@ip_nouveauserveur:/chemin/destination
L’ip peut également être le nom de domaine, ou encore le reverseip
Par exemple :
rsync -e ssh /export.sql 90.0.0.1:/root/
Je n’ai pas précisé l’utilisateur car étant en root sur le premier serveur, la connexion s’effctura en root sur le second. Le serveur va de toute façon demander le mot de passe associé, qu’il vous faudra entrer.
3 : Import de la base de données
Il nous reste à importer toutes les données de la base contenues dans le fichier d’export sql sur notre nouveau serveur. J’avais par ailleurs déjà abordé ce thème lors d’un précédent billet.
Etablir une connexion SSH en tant que super utilisateur (root) :
[ssh]mysql [base de données] -u [utilisateur sql] -p < /chemin/vers/export.sql[/shell]
Ce qui donne chez moi :
[ssh]mysql blogbase -u bloguser -p < /root/export.sql[/shell]
Fichiers de configuration
Pensez également à modifier (si nécessaire) certaines valeurs dans le fichier /wp-config.php :
- l’adresse du serveur MySQL (si c’est « localhost » vous êtes tranquille)
- le nom de la base de données
- le nom de l’utilisateur MySQL
- le mot de passe de l’utilisateur MySQL
Conclusion
Essayer de réaliser ces opérations dans un minimum de temps si vous ne coupez pas l’accès au blog. En effet, si vous recevez un nouveau commentaire après l’export, celui-ci passera à la trappe.
Pour pallier à ceci, vous pouvez restreindre l’accès au blog à l’aide d’un .htaccess (lire « précautions et informations ») limitant l’accès à votre seule adresse IP le temps de la migration.
L’idéal étant de préparer le nouveau serveur (création de la base, de l’utilisateur MySQL, etc.) avant de couper l’accès au blog.
Grâce à cette technique, personne ne s’est rendu compte du changement de serveur pour Blogmotion, pourtant réalisé en soirée, heure importante en terme de visites, mais sans coupure
Auteur : Mr Xhark
Fondateur du blog et passionné par les technologies je partage mes découvertes quotidiennement.










Déjà 5 commentaires
11 juin 2009 à 15h30
Well done!! Thanks for this post!
Gaetan
12 juin 2009 à 10h57
boookmarqué! Migrer la base de données de WordPress de serveur http://tinyurl.com/n6bwqx
dit :
12 juin 2009 à 12h49
Merci pour ce petit récap
Dis moi, si la base de donnée est très conséquente (genre plus de 50mo) il existe une option pour pas que ça plante (découpage, ….)
++
12 juin 2009 à 15h18
En cas de grosse base de données, c’est justement la méthode via shell qui est la plus efficace
dit :
21 août 2011 à 14h56
Concernant les bases de donnée très importante j’utilise big dump.