mysql 출현 ERROR 1819(HY 000)의 해결 방법

5828 단어 mysqlERROR1819HY000
ERROR 1819(HY 000):Your password does not satisfy the current policy requirements,이 문제 가 발생 하면 어떻게 합 니까?조급해 하지 마 세 요.다음은 답 을 드 리 겠 습 니 다.
보안 을 강화 하기 위해 MySQL 5.7 은 루트 사용자 에 게 무 작위 로 비밀 번 호 를 만 들 었 습 니 다.error log 에서 error log 의 위치 에 대해 RPM 패키지 가 설치 되 어 있 으 면 기본 값 은/var/log/mysqld.log 입 니 다.
보통 log오류 설정

mysql> select @@log_error;
+---------------------+
| @@log_error     |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)
\#grep"password"/var/log/mysqld.log 명령 을 통 해 MySQL 의 임시 암 호 를 가 져 올 수 있 습 니 다.
2016-01-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5
이 비밀번호 로 서버 에 로그 인 한 후 바로 비밀 번 호 를 수정 해 야 합 니 다.그렇지 않 으 면 다음 과 같은 오 류 를 보고 할 수 있 습 니 다.

mysql> select user();
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
간단 한 비밀번호 로 만 수정 하면 다음 과 같은 오류 가 발생 합 니 다.

mysql> ALTER USER USER() IDENTIFIED BY '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
이 건 사실 vaidatepassword_policy 의 값 과 관계 가 있 습 니 다.
validate_password_policy 는 다음 과 같은 값 이 있 습 니 다.

기본 값 은 1,즉 MEDIUM 이기 때문에 처음에 설정 한 비밀 번 호 는 길이 에 맞 아야 하고 숫자,소문 자,대문자,특수 문 자 를 포함해 야 합 니 다.
가끔 은 자신 을 위해 테스트 를 하기 위해 서 비밀 번 호 를 그렇게 복잡 하 게 설정 하고 싶 지 않 습 니 다.예 를 들 어 저 는 루트 의 비밀 번 호 를 123456 으로 설정 하고 싶 습 니 다.
두 개의 전역 매개 변 수 를 수정 해 야 합 니 다:
우선,vaidate 수정password_policy 매개 변수의 값

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
이렇게 되면 암 호 를 판단 하 는 기준 은 암호 의 길 이 를 바탕 으로 한다.이 건 vaidatepassword_length 매개 변 수 를 결정 합 니 다.

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|             8 |
+----------------------------+
1 row in set (0.00 sec)
validate_password_length 매개 변 수 는 기본적으로 8 입 니 다.최소 값 의 제한 이 있 습 니 다.최소 값 은:

validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)
그 중,validatepassword_number_count 는 암호 에 있 는 데이터 의 길 이 를 지 정 했 습 니 다.vaidatepassword_special_char_count 는 암호 에 있 는 특수 문자 의 길 이 를 지정 하 였 습 니 다.vaidatepassword_mixed_case_count 는 암호 의 크기 자모의 길 이 를 지정 합 니 다.
이 매개 변 수 는 기본 값 이 1 이 므 로 vaidatepassword_length 최소 값 은 4 입 니 다.만약 당신 이 명시 적 으로 vaidate 를 지정 한다 면password_length 의 값 은 4 보다 작 습 니 다.틀 리 지 는 않 지만 vaidatepassword_length 의 값 은 4 로 설 정 됩 니 다.다음 과 같다.

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|             8 |
+----------------------------+
1 row in set (0.00 sec)

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

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|             4 |
+----------------------------+
1 row in set (0.00 sec)

하면,만약,만약...password_number_count,validate_password_special_char_count,validate_password_mixed_case_count 의 모든 값 은 vaidatepassword_length 는 동적 수정 을 진행 합 니 다.

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|             4 |
+----------------------------+
1 row in set (0.00 sec)

mysql> select @@validate_password_mixed_case_count;
+--------------------------------------+
| @@validate_password_mixed_case_count |
+--------------------------------------+
|                  1 |
+--------------------------------------+
1 row in set (0.00 sec)

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

mysql> select @@validate_password_mixed_case_count;
+--------------------------------------+
| @@validate_password_mixed_case_count |
+--------------------------------------+
|                  2 |
+--------------------------------------+
1 row in set (0.00 sec)

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|             6 |
+----------------------------+
1 row in set (0.00 sec)

물론 전 제 는 vaidatepassword 플러그 인 은 설치 되 어 있어 야 합 니 다.MySQL 5.7 은 기본적으로 설치 되 어 있 습 니 다.
그럼 vaidate 를 어떻게 검증 합 니까?password 플러그 인 을 설치 하 시 겠 습 니까?다음 매개 변 수 를 볼 수 있 습 니 다.설치 되 어 있 지 않 으 면 출력 이 비어 있 습 니 다.

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name            | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file  |    |
| validate_password_length       | 6   |
| validate_password_mixed_case_count  | 2   |
| validate_password_number_count    | 1   |
| validate_password_policy       | LOW  |
| validate_password_special_char_count | 1   |
+--------------------------------------+-------+
6 rows in set (0.00 sec)

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기