MacにインストールしたMySQL5.7のrootのパスワードを簡単なものに変更する

Web制作やシステム開発の現場ではMacのローカル環境にあるMySQLをよく使いますが、頻繁にログインが必要なときはちょっと面倒だったりします。
なので、一時的にrootのパスワードを簡単なものに変更します。

まずはバージョン確認をします。
$ mysql –version
mysql  Ver 14.14 Distrib 5.7.11, for osx10.9 (x86_64) using  EditLine wrapper

私の環境では5.7です。

続いてログインします。
$ mysql -u root -p
Enter password:

ログインに成功。
mysql>

現在の設定を確認します。
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
+————————————–+——–+
| Variable_name                        | Value  |
+————————————–+——–+
| 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      |
+————————————–+——–+

MySQLのマニュアルを確認するとこう書いてあります。
パスワード検証プラグイン

”EDIUM ポリシーは、パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む必要があるという条件を追加します。”

ローカル環境では煩わしさを減らすために簡単なパスワードでログインしたいのです。
そこで、validate_password_policyをLOWに変更します。
マニュアルによればLOWはパスワードの長さのみ制限されるらしいです。

”LOW ポリシーは、パスワードの長さのみテストします。パスワードは少なくとも 8 文字の長さでなければなりません。”

パスワードポリシーを変更
mysql> SET GLOBAL validate_password_policy=LOW;

設定を確認してみます。
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
+————————————–+——-+
| Variable_name                        | Value |
+————————————–+——-+
| 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     |
+————————————–+——-+

LOWに変更されています。
これで数字のみのパスワードも設定できます。

パスワードの文字数を減らしたい場合はvalidate_password_lengthを変更します。
現在、8文字以上に制限されていますが、これを4文字以上に変更するには以下のようにします。
mysql> SET GLOBAL validate_password_length=4;

設定を確認してみます。
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
+————————————–+——-+
| Variable_name                        | Value |
+————————————–+——-+
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+————————————–+——-+

これでrootのパスワードを数字のみのパスワードに変更できます。
mysql> set password for root@localhost=password(‘新しいパスワード’);

このように表示されたら設定は完了です。
Query OK, 0 rows affected, 1 warning (0.00 sec)