MySQL5.7で適当なパスワードでユーザーを作ろうとしようものなら容赦なく怒られた
$ mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
・・・こんな感じ
このチェックを無効化にする方法を調べたのでメモ。
#パスワードのチェックを無効化する
チェックを無効にしたければvalidate_passwordプラグインを無効にするといいらしい。
ということで、my.cnfにvalidate-password=OFFを追記。これだけ。
$ sudo vi /etc/my.cnf
/etc/my.cnf
[mysqld]
validate-password=OFF
設定反映のためmysqlの再起動。
$ sudo systemctl restart mysqld.service
以上であります。
確認のため適当なパスワードでユーザーを作ってみる。
$ mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.00 sec)
いけました
#おまけ
上記の設定を無効にする前の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 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
設定値 | 説明 | デフォルト値 |
---|---|---|
validate_password_check_user_name | パスワードにユーザー名の一部が含まれていないか | 無効 |
validate_password_dictionary_file | 除外する文字列を定義したファイルを設定できる | 未指定 |
validate_password_length | パスワードに必要な最小の文字数 | 8文字 |
validate_password_mixed_case_count | パスワードに必要な小文字および大文字の最大数。 パスワードポリシーが MEDIUM以上で有効 | 1文字(有効) |
validate_password_number_count | パスワードに必要な数値文字 (数字) の最大数。パスワードポリシーが MEDIUM以上で有効 | 1文字(有効) |
validate_password_policy | パスワードポリシー | MEDIUM |
validate_password_special_char_count | スワードに必要な英数字以外の文字の最大数。パスワードポリシーが MEDIUM以上で有効 | 1文字(有効) |
デフォルトはかなりガチガチ
validate_password_policy=LOWに設定すると、長さチェックだけになるみたい
/etc/my.cnf
[mysqld]
validate_password_policy=LOW
参考:https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html