Lorsque j'essaie de sauvegarder avec mysqldump à partir de ssh, J'exécute la commande suivante sur la machine 10.64.1.1. Cela donne l'erreur suivante.
mysqldump --user=test -p=password --Host=10.64.1.2 --tab=. databasename tablename
mysqldump: Got error: 1045: Access denied for user 'test'@'10.64.1.1' (using password: YES)
lors d'une tentative de connexion
Cependant, je peux accéder à mysql avec le même utilisateur et le même mot de passe.
mysql --user=test -p[password]
Utilisateur actuel: [email protected]
SSL: Not in use
Page courante: stdout
Utilisation de outfile: ''
Utilisation du délimiteur: ;
Version du serveur: 5.0.91-50-log Percona SQL Server, Revision 73 (GPL)
Version du protocole: 10
Connexion: 10.64.1.2 via TCP/IP
Mises à jour:
Si je suis après le document mysql: --password[=password]
ou -p[password]
.
Puisque mon mot de passe contient le symbole spécial @
, Mysql ne peut pas détecter l’utilisateur correctement. Il se plaint:
mysqldump: Got error: 1044: Access denied for user 'test'@'%' to database
Je pense que vous devriez perdre le = en utilisant -p ou le faire avec --password:
--password [= mot de passe], -p [mot de passe]
Le mot de passe à utiliser lors de la connexion à le serveur. Si vous utilisez le court métrage forme d’option (-p), vous ne pouvez pas avoir un espace entre l'option et le mot de passe. Si vous omettez le mot de passe valeur suivant le mot de passe - ou mot -p option sur la ligne de commande, vous êtes invité pour un. Spécifier un Le mot de passe sur la ligne de commande devrait être considéré comme peu sûr. Voir la section 6.6, "Garder votre mot de passe sécurisé".
Vous devez exécuter CMD.EXE en tant qu'administrateur:
Cliquez avec le bouton droit sur cmd.exe -> Exécuter en tant qu’administrateur, puis tapez votre commande:
mysqldump -u [nom d'utilisateur] -p [mot de passe] -h [ip ou nom] votre nom de la base de données> c:\sqlfile.sql
Cela devrait bien fonctionner.
Je sais que le sujet est très ancien, mais j’ai eu le même problème. J'ai compris que le problème était juste le caractère spécial utilisé dans le mot de passe. En fait, ils doivent être échappés avec l'anti slash: --password=123\@456
ou en utilisant des guillemets __ _--password='123@456'
J'ai eu le même problème avec un utilisateur de base de données créé via Plesk. L'utilisateur dispose d'autorisations pour une base de données unique. Si je spécifie le nom de la base de données, j'obtiens l'erreur mentionnée ci-dessus. Si je spécifie -A
pour toutes les bases de données, le vidage fonctionne.
Dans Windows, je l'ai résolu en créant un répertoire puis en vidant le fichier * .sql du répertoire de sauvegarde.
C:\backup
Il n'y a pas de problèmes avec les commandes:
Supprimer les crochets []
mysqldump -u[username] -p[password] -h[ip] yourdb > C:\backup\sqlfile.sql
Cela a fonctionné pour moi :)
Une autre cause possible peut être l'endroit où vous essayez de créer dump . Ecrire mysqldump -u[username] -p yourdb > D:\backup\sqlfile.sql
au lieu de mysqldump -u[username] -p yourdb > sqlfile.sql
a résolu mon problème.
Il n'y a pas =
(signe égal) pour les options de connexion. Vous voulez ce qui suit.
mysqldump -u test -ppassword -h 10.64.1.2 ...
Consultez la documentation pour plus de détails sur les autres options.
Essayer avec cette commande
mysqldump --user=root -p --Host=127.0.0.1 --databases database_name [database_name_2,...] > dump.sql
Voici ce qui a fonctionné pour moi: exécutez cmd line en tant qu'admin . Ne mettez aucun mot de passe après -p, vous êtes automatiquement invité à entrer un mot de passe et cela fonctionne.