2013年6月4日火曜日

MySQL 5.6.12の--connect-expired-passwordオプション

MySQL 5.6.12のChangeLogを読んでいて不思議に思った--connect-expired-passwordオプションのメモ。

オプションの説明を読んでもいまいちピンと来なかった。

どうやらpassword_expiredが'Y'になっている(rpmとかでインストールした時はこうなる)と、
非対話モードでのログインができないらしい。

とりあえずためす。

mysql56> grant all on *.* to test;
Query OK, 0 rows affected (0.05 sec)

mysql56> alter user test password expire;
Query OK, 0 rows affected (0.00 sec)

$ mysql -utest -e "select current_user()"
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

# mysql -utest --connect-expired-password -e "select current_user()"
ERROR 1820 (HY000) at line 1: You must SET PASSWORD before executing this statement

おおー、ホントだー。

これがあるからmysql_secure_installation
(Perl、内部でsystem("mysql .. < $command");って呼び方をしてる)
が動かなくて、今回動くようになったっていうBug Fixなのか。。

にしても、mysql_secure_installation使ってる人いるのかな?
個人的には手間がなくて便利なんだけれども、gtid-mode=ONにしてると怒られるから
(MyISAMなmysql.userテーブルを直接叩くので、gitd-mode=ONだとunsafeって言われて転ける)
使わなくなっちゃった感じです。5.5までは常用してた。

0 件のコメント :

コメントを投稿