mysql 출현 ERROR 1819(HY 000)의 해결 방법
보안 을 강화 하기 위해 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)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.