Mysqldump

De SeRoM - Wiki
Aller à : navigation, rechercher

Mysqldump est un outil de backup de base de données MySQL. Je vais vous expliquer ici comment faire une copie complète des bases de données qui se trouvent sur un serveur vers un autre.

  • On Récupère le contenu de la base source dans un fichier.sql
mysqldump -u root -p > fichier_bkp.sql

Vous pouvez aussi passer l'étape suivante, si vous lancer le dump depuis le serveur de destination et que vous spécifier l'host comme ceci:

mysqldump -h host_source -u user -p > fichier_bkp.sql
  • On transfère le fichier.sql sur le serveur de destination. (clé usb, scp, ...)
  • On injecte le contenu du fichier.sql dans la base de destination.
mysql -u root -p < fichier_bkp.sql

Si c'est une nouvelle installation, il se peut que root n'ai pas mot de passe. Taper juste [Enter] quand il vous demande le mot de passe.

  • On relance MySQL.
/etc/init.d/mysql restart

Sous Debian, il est fort probable que vous obtiendrai cette erreur au redémarrage de MySQL.

error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

Pour résoudre cette erreur, il va falloir aller mettre à jour le mot de passe de debian-sys-maint dans la base de données.

  • On entre dans l'interpréteur mysql:
mysql -u root -p
  • Et on change le mot de passe (il est crypté).
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;

Il faut bien évidement replacer <password> par celui qui ira pour votre serveur. On le trouve dans le fichier /etc/mysql/debian.cnf.

Voila Maintenant il n'y aura plus de message d'erreur au relancement de votre démon mysql.