ASi

mysql の --login-path の使い方

とても繊細。ハマりやすい。

https://dev.mysql.com/doc/refman/8.0/en/mysql-config-editor.html
に説明があるが、正直に言ってわかりにくいし、書いてある内容だけだと素直にいかない。

OSX では mysql_config_editor は下記にある。
/usr/local/mysql/bin/mysql_config_editor

設定する
$ /usr/local/mysql/bin/mysql_config_editor set --login-path=PATHNAME --host=127.0.0.1 --port=33306 --user=admin --password

確認する。設定は難読化されて ~/.mylogin.cnf に保存される
$ /usr/local/mysql/bin/mysql_config_editor print --all
[PATHNAME]
user = admin
password = *****
host = 127.0.0.1
port = 33306

このように使う。

/usr/local/mysql/bin/mysqldump --login-path=PATHNAME DBNAME \
  --routines --events --triggers --no-data --skip-add-drop-table

ポイントはここで、下記のようなオプション指定をすると、
mysqldump: [ERROR] unknown variable 'login-path=PATHNAME'
というよく意味のわからないエラーとなる。

下記のように -h -P -u -p があってはならない。

/usr/local/mysql/bin/mysqldump -h 127.0.0.1 -P 33306 -u admin -p \
  --login-path=PATHNAME DBNAME \
  --routines --events --triggers --no-data --skip-add-drop-table \
  • login-path=PATHNAME は一つ目のオプションに指定しなくてはならない。下記はダメ。
/usr/local/mysql/bin/mysqldump DBNAME \
  --routines --events --triggers --no-data --skip-add-drop-table \
  --login-path=PATHNAME