web-dev-qa-db-ja.com

mysqldumpアクセスが拒否されました

Sshからmysqldumpを使用してバックアップしようとすると、マシン10.64.1.1で次のコマンドを実行します。次のエラーが発生します。

_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)接続しようとするとき

ただし、同じユーザーとパスワードを使用してmysqlにアクセスできます。

_mysql --user=test -p[password]_

現在のユーザー:_[email protected]_

SSL:_Not in use_

現在のページャー:stdout

Outfileの使用:_''_

区切り文字の使用:_;_

サーバーのバージョン:5.0.91-50-log Percona SQL Server, Revision 73 (GPL)

プロトコルバージョン:_10_

接続:_10.64.1.2 via TCP/IP_

更新:

次のmysqlドキュメントを実行する場合:_--password[=password]_または_-p[password]_。

パスワードには特別なシンボル_@_が含まれているため、Mysqlはユーザーを正しく検出できません。文句を言う:

_mysqldump: Got error: 1044: Access denied for user 'test'@'%' to database_

26
chnet

-pを使用するときに=を失うか、または--passwordを指定して実行する必要があると思います。

--password [=パスワード]、-p [パスワード]

サーバーに接続するときに使用するパスワード。短いオプション形式(-p)を使用する場合、オプションとパスワードの間にスペースを入れることはできません。コマンドラインで--passwordまたは-pオプションの後にパスワードの値を省略すると、入力を求められます。コマンドラインでパスワードを指定することは安全ではないと考えるべきです。 6.6項「パスワードの保護」を参照してください。

19
Spyros

管理者としてCMD.EXEを実行する必要があります。

Cmd.exeを右クリック->管理者として実行し、コマンドを入力します。

mysqldump -u [ユーザー名] -p [パスワード] -h [IPまたは名前] yourdatabasename> c:\ sqlfile.sql

正常に動作するはずです。

31
HENG Vongkol

私はこのトピックが非常に古いことを知っていますが、偶然同じ問題を抱えていました。問題はパスワードに使用されている特殊文字だけであることがわかりました。実際、アンチスラッシュでエスケープする必要があります:--password=123\@456または単一引用符を使用--password='123@456'

11
AlainD.

Pleskで作成したDBユーザーでも同じ問題が発生しました。ユーザーには、単一のデータベースに対する権限があります。データベース名を指定すると、上記のエラーが発生します。すべてのデータベースに-Aを指定すると、ダンプは機能します。

8
Tim

Windowsでは、ディレクトリを作成し、バックアップディレクトリに* .sqlファイルをダンプすることで解決しました。

C:\backup

コマンドに問題はありません:
[]角括弧を削除します

mysqldump -u[username] -p[password] -h[ip] yourdb > C:\backup\sqlfile.sql

それは私のために働いた:)

5
HARSH PATHAK

考えられるもう1つの原因は、ダンプを作成しようとしている場所です。 mysqldump -u[username] -p yourdb > D:\backup\sqlfile.sql の代わりに mysqldump -u[username] -p yourdb > sqlfile.sqlは私の問題を解決しました。

4
Aakash Patel

接続オプションに=(等号)はありません。次のものが必要です。

mysqldump -u test -ppassword -h 10.64.1.2 ...

他のオプションの詳細については、 ドキュメント をご覧ください。

1
Jason McCreary

このコマンドで試してみる

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

ここでうまくいったのは、管理者としてcmd行を実行することです。 -pの後にパスワードを入力しないでください。パスワードを入力するように自動的に求められ、機能します。

0
jai