이는 mysql을 초기화할 때 임시 비밀번호를 사용하고, 커스텀 비밀번호를 수정하는 경우에는 커스텀 비밀번호가 비교적 간단하기 때문에 비밀번호 정책을 따르지 않는 문제가 있다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
해결책:
① mysql의 초기 비밀번호 정책을 확인합니다.
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 |
+--------------------------------------+--------+
② 먼저 비밀번호의 검증 강도 수준을 설정하고, verify_password_policy의 전역 매개변수를 LOW로 설정해야 합니다.
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
③ 현재 비밀번호 길이는 8자이며 4자리 비밀번호로 설정할 수 있습니다.
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
④ 이제 mysql에 대한 간단한 비밀번호를 설정할 수 있습니다.
mysql> update user set authentication_string=password('123456') where user='root';
Query OK, 2 rows affected, 1 warning (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 1
mysql> quit
Bye
⑤ mysql 서비스를 다시 시작합니다:
[root@nginx-dev apps]# service mysqld restart