とても繊細。ハマりやすい。
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