MySQL8.0(or 5.7)でrootのパスワードを短く設定する方法(4文字パスワード可能)

MySQL5.7以降パスワードの設定が厳しくなった

MySQL5.7以降パスワードの設定が厳しくなり、パスワードポリシーをLOWにしていてもパスワード文字数の最小文字数が8文字となっています。ローカル環境では、パスワードは簡単なものにしているケースが多いので突然パスワードを8文字にするのは開発負担になります。そこで今回は、MySQL8.0でrootのパスワードを短く設定する方法を説明します。

現在のパスワード検証状態を確認する

一旦、`mysql -uroot -p`でmysqlに入ります。そして、

SHOW VARIABLES LIKE 'validate_password%';

で現在のパスワード検証状態を確認します。MySQL8.0の場合下記のように表示されます。MySQL5.7とMySQL8.0は形式が違いますので要注意です。MySQL5.7は`_`(アンダーバー)で区切られていてMySQL8.0は`.`で区切られています。

MySQL8.0のvalidate_password

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

MySQL5.7のvalidate_password

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | LOW    |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

MySQL8.0(or 5.7)でrootのパスワードを短く設定する

MySQL8.0でrootのパスワードを`root`にしたい場合

SET GLOBAL validate_password.length = 4;
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.check_user_name = OFF;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

MySQL8.0でrootのパスワードを`root`にしたい場合

SET GLOBAL validate_password.length = 4;
SET GLOBAL validate_password_policy = LOW;
SET GLOBAL validate_password_check_user_name = OFF;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

上記コマンドを実行すればrootのパスワードが`root`になります。

`Unknown system variable ‘validate_password〜’`などが出たら

SHOW VARIABLES LIKE 'validate_password%';

で設定変数を再確認しましょう。
もちろん開発環境以外ではパスワードはわかりにくい使いましょうね。