Sauvegarde de la base de données sous debian

Tags: #<Tag:0x00007f63f431b4b0>

Bonjour,
voilà je voulais faire la sauvegarde de la base de données sous Debian en utilisant cette commande:

root@www:/home/test# mysqldump -u root -p base_de_donnees> /home/ummto/backup/base_de_donnees02072020.sql

il y a ce message d’erreur qui s’affiche:

mysqldump: Got error: 1045: « Access denied for user ‹ root ›@‹ localhost › (using password: YES) » when trying to connect

et j’arrive pas à faire la sauvegarde de la base de données,
quelqu’un peut m’orienter pour régler le problème.
Merci

Sauvegarde MySql

Il y a différents types de sauvegarde mysql.
On peut sauvegarder toutes les bases de données, une seule base de données ou encore certaines tables d’une ou de plusieurs bases.

Pour sauvegarder toutes les bases de données on utilise la commande suivante :

mysqldump --user=mon_user --password=mon_password --all-databases > fichier_destination.sql

Pour sauvegarder une base de données précise :

mysqldump --user=mon_user --password=mon_password --databases nom_de_la_base > fichier_destination.sql

Pour sauvegarder plusieurs bases de données :

mysqldump --user=mon_user --password=mon_password --databases nom_de_la_base_1 nom_de_la_base_2 > fichier_destination.sql

Pour sauvegarder une table précise :

mysqldump --user=mon_user --password=mon_password --databases nom_de_la_base --tables nom_de_la_table > fichier_destination.sql

Pour sauvegarder plusieurs tables :

mysqldump --user=mon_user --password=mon_password --databases nom_de_la_base --tables nom_de_la_table_1 nom_de_la_table_2 > fichier_destination.sql

Pour tous ces types de sauvegarde mysql les fichiers générés sont en .sql.
Cela dit on peut mettre l’extension que l’on veut comme .txt par exemple.
Ça n’a pas d’importance.

Les fichiers sont lisibles en clair et contiennent toutes les commandes SQL pour pouvoir faire une restauration mysql.


Le manuel est beaucoup plus complet, mais je ne le trouve pas en français.

Pour éviter de laisser des mots de passe en clair dans l’historique du shell, on peut tout à fait remplacer --password=mon_password par un simple -p
Le mot de passe est alors demandé lors de la validation de la commande.

Si l’utilisateur MySQL / MariaDB n’a pas de mot passe, l’usage de ces options est à proscrire.
(Je crois bien)

1 J'aime

Le message est clair l’utilisateur root n’est pas autorisé à se connecter, règle ce souci et la sauvegarde sera aisée.

PS personnellement les backup je l’ai ‹ gunzip › quand c’est une grosse base.

mysqldump -u username -p your_db_name | gzip -9 > your_db_name.sql.gz
1 J'aime

Bonjour,
j’ai lancé la sauvegarde en mode root, pourquoi je ne suis pas autorisé pour faire la sauvegarde, et pourtant j’ai l’habitude de la faire à chaque deux jours ou trois jours.
comment je puisse régler ce soucis
Cordialement
Nora

Et sans préciser l’utilisateur :

mysqldump base_de_donnees> dump.sql

Normalement l’utilisateur root de mysql s’authentifie avec unix_socket pas un mot de passe.

j’ai l’habitude d’utiliser la même commande est ça marche à merveille, je ne comprend pas pourquoi ce message d’erreur s’affiche et je suis en mode root!!!
Nora

On t’a déjà expliqué ce qui cloche :

N.B. : l’utilisateur root de MySQL et l’utilisateur root du système Debian sont deux choses bien distinctes.

Si tu ne veux pas regarder le problème, c’est à dire comment est configuré l’utilisateur root de MySQL, cette commande lancée en root fonctionnera toujours :

mysqldump --defaults-file=/etc/mysql/debian.cnf  database > dump.sql
1 J'aime

Merci pour votre réponse, j’ai dû échappé votre première réponse

Juste pour compléter, c’est le cas pour les paquets mariadb / mysql des dépôts debian officiels, mais pas pour les paquets .deb fournis par la communauté mariadb ou mysql community, de mémoire (le plugin unix_socket est désactivé, à l’installation debconf demande de choisir un mot de passe pour le compte root@localhost).