web-dev-qa-db-fra.com

accès mysqldump refusé

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

23
chnet

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é".

17
Spyros

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.

28
HENG Vongkol

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'

11
AlainD.

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.

7
Tim

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 :)

5
HARSH PATHAK

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.

4
Aakash Patel

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.

1
Jason McCreary

Essayer avec cette commande

mysqldump --user=root -p --Host=127.0.0.1 --databases database_name [database_name_2,...] > dump.sql
0
NguyenHuuGiap

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.

0
jai