mysql 8 設定密碼強度

MySQL 8.0下設定密碼出現錯誤提示示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

1.當前設定值

mysql> SHOW VARIABLES LIKE '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             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.02 sec)

2.修改設定

mysql -u root -p

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

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

3.執行如下命令

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.02 sec)

4.新增使用者帳號及密碼

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';

---------------------------------------------------------------------------------------------------------

建立可被遠端登入的使用者

MySQL的使用者可以限定其所屬主機,換句話說就是能連進來登入的主機。在一開始建立使用者的時候就要進行限定了。

例如以下SQL敘述,可以建立出只能在本地端(localhost)登入的使用者:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

而以下SQL敘述,可以建立出從192.168.100.1主機登入的使用者:

CREATE USER 'username'@'192.168.100.1' IDENTIFIED BY 'password';

以下SQL敘述,則可以建立出從任意主機都能登入的使用者:

CREATE USER 'username'@'%' IDENTIFIED BY 'password';