mita2 database life

主にMySQLに関するメモです

mysql_config_editor は シャープを含むパスワードをうまく扱えない

mysql_config_editor は ログイン情報を管理するためのコマンドです。
~/.mylogin.cnf に難読化されたIDやパスワード、接続先の情報が記録されます。


$ strings .mylogin.cnf
#Xu*|


難読化されているので、中身を確認するには、my_print_defaults コマンドで表示する必要があります。

$ my_print_defaults client -s
--user=root
--password=Pass
--host=localhost

 
さて、このコマンドなんですが、シャープを含む文字列をうまく扱えないバグがあります。
Pass#word123 というパスワードが Pass になってしまっています。
シャープは設定ファイルではコメントを示します。
設定ファイルに保存するときに、うまくエスケープしてない実装になってしまっているんでしょうね。。。

$ mysql_config_editor set --host=localhost --user=root --password
Enter password: Pass#word123

$ mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

$ my_print_defaults client -s
--user=root
--password=Pass
--host=localhost


バグレポもだいぶ昔に上がってました。まだ修正されてないみたいです。

https://bugs.mysql.com/bug.php?id=74691