LoginSignup
3
4

More than 5 years have passed since last update.

[mysqldump]defaults-extra-file を使用すると 1045: Access denied

Last updated at Posted at 2019-04-06

背景・課題

mysqldump(mysqlでも同じ)で、コマンドに直接パスワードを指定すると以下の警告が出力されます。
手動で実行する分には許容範囲ですが、問題はcronで実行している時です。
エラー発生時に管理者にメール送信するようにしていると実行するたびにエラーメールが送信されてしまいます。

Warning: Using a password on the command line interface can be insecure

この警告の解消方法としてMYSQL_PWD--defaults-extra-fileを使った方法がありますが、--defaults-extra-fileを使ったところ以下のエラーが出力されて失敗します。
ユーザ名は指定したものが認識されているので意図したファイル・設定が読み込まれていることは間違いありません。

mysqldump: Got error: 1045: Access denied for user 'backup_user'@'localhost' (using password: YES) when trying to connect done exporting

原因

パスワードに利用している特殊文字が認識されていなかった

[mysqldump]
user=backup_user
password=xxxxxx#xxx  ← #以降が認識されない。
host=localhost

TIPS:パスワードが認識されているかの確認方法

設定ファイル内のpasswordpasswdとか不正な変数にして実行します。すると実行エラーとなり以下のようなエラーメッセージが表示されます。今回は#以降が出力されなかったので、パスワードが認識されていないことに気がつきました。

[ERROR] unknown variable 'passwd=xxxxxxx'

対策

引用符で囲む

前)password=xxxxxx#xxx
後)password='xxxxxx#xxx'

あとがき

  • ファイルが読み込まれていないのか?
  • ファイル定義方法が間違えているのか?
  • defaults-extra-file利用時特有の制約があるのか?
  • パスワードをエスケープしたらどうか?

とか。結局、解決まで1時間くらい要してしまいました。。。(T_T)

3
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4