MySQL5.7でパスワードを空文字に設定する

#環境
MySQL 5.7.30
Ubuntu 18.04

#やりたいこと
MySQLにログインするときの認証を簡単にするため、MySQL5.7のパスワードを空文字`''`に設定します。

#パスワードポリシーのレベルを下げる
パスワードポリシーのレベルを下げることで対処します。

mysqlに既存のパスワードでログインし、`show variables like 'validate_password%'`とコマンドすればポリシーの詳細を確認できます。

```
mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| 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      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
```

password_lengthを0にするには、

１ , 「validate_password_policy」を「LOW」にする
２ , 「validate_password_mixed_case_count」を「0」にする
３ , 「validate_password_number_count」を「0」にする
４ , 「validate_password_special_char_count」を「0」にする
５ , 「validate_password_length」を「0」にする

上記の手順で進めます。（どうやらmixed_case_countなどの数値が設定されていると、それらの合計未満にはpassword_lengthが設定できないようです。）

ちなみにそれぞれのcountの意味は以下のとおりです。

- validate_password_number_count　・・・　数字の文字数
- validate_password_mixed_case_count　・・・　英字の文字数
- validate_password_special_char_count　・・・　特殊文字の文字数

手順４までの途中経過です。

```
mysql> set global validate_password_policy = LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_mixed_case_count = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_number_count = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_special_char_count = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_p%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 0     |
| validate_password_number_count       | 0     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 0     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
```
手順５の結果です。

```
mysql> set global validate_password_length = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_pas%';
+--------------------------------------+-------+
| 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     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
```

validate_password_lengthを0に設定することができました。これでMySQLのパスワードに空文字を使うことができます。

#さいごに
最初は設定ファイル`my.cnf`に`validate-password=OFF`を追記する方法を試したのですが、mysql再起動時にエラーとなり、原因がわからなかったため断念しました。