[Ruby on Rails]MySQL5.7だとパスワードが空白にできない?

今までローカルでrailsアプリ開発をやっているとMySQLのパスワードは空白の方が何かと楽に開発できるので空白にしてました。
しかしMySQL5.7だと強制的にパスワードを設定しないと行けなくなっているっぽいですね。
一応解決方法があったのでメモ。

やるのは自己責任でお願いします。

まずはMySQLの設定を確認する。

SHOW GLOBAL VARIABLES LIKE 'validate%';
を実行すると以下の結果が返るはず。

Variable_name Value
validate_password_check_user_name OFF
validate_password_dictionary_file
validate_password_length 8
validate_password_mixed_case_count 1
validate_password_number_count 1
validate_password_policy MEDIUM
validate_password_special_char_count 1

validate_password_lengthでパスワード数が8桁以上とかになっている。
なのでこの設定を変更して空白を登録できるようにするよ。

以下の順番でSQLを実行してみましょう。

再度以下SQLを実行すると
SHOW GLOBAL VARIABLES LIKE 'validate%';


Variable_name Value
validate_password_check_user_name OFF
validate_password_dictionary_file
validate_password_length 0
validate_password_mixed_case_count 0
validate_password_number_count 0
validate_password_policy LOW
validate_password_special_char_count 0

最後に以下SQLを実行するとrootユーザのパスワードが空白になります。

直接パスワードを空に修正すると
Your password does not satisfy the current policy requirements
とエラーになると思います。
が上記手順を行えばパスワードを空白にすることができました。

参考

MySQL Bugs: #74794: use validate password plugin result in mysqld shutdown abnormally
mysql5.7でパスワードを変更する

スポンサードリンク