Dev_Log

[MySQL] Your password does not satisfy the current policy requirements

LeeDaniel 2021. 5. 7. 11:22
root계정의 비밀번호를 root00으로 적용하려고 했는데
다음과 같은 에러가 발생했다

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

root계정 비밀번호 변경시 에러 발생

✔ Solution

1. 설정되어있는 MySQL 비밀번호 정책 확인후

2. 바꾸고싶은 비밀번호에 맞게 정책을 수정한다.

3. 원하는 비밀번호로 변경하고 접속해본다

 

해결방법을 설명하기에 앞서 본인의 MySQL 버전을 확인해보자

( 버전별로 명령어 or 함수가 다를수 있기 때문이다 )

# mysql --version

본인의 MySQL 버전은 8.x이며
비밀번호 변경 명령어가 5.x는 다를수있다
똑같이해도 안된다면 구글링을 해보자

 

1. 기존의MySQL 비밀번호 정책 확인해보기

mysql> SHOW VARIABLES LIKE 'validate_password%';

MySQL 비밀번호 정책 확인

 

■위에 보여지는 MySQL 비밀번호 정책에 대한 문서

 

MySQL :: Security in MySQL :: 6.3.2 Password Validation Options and Variables

Security in MySQL  /  ...  /  Security Components and Plugins  /  The Password Validation Component  /  Password Validation Options and Variables 6.3.2 Password Validation Options and Variables This section describes the system and status variable

dev.mysql.com

정책 설명
validate_password.check_user_name 비밀번호에 계정명이 포함되는지 체크
validate_password.length 비밀번호의 길이를 체크
validate_password.mixed_case_count 비밀번호에 포함될 대소문자의 최소 갯수
validate_password.number_count 비밀번호에 포함될 숫자의 최소 갯수
validate_password.policy MEDIUM은 설정된 정책을 적용시키는 옵션값
정책을 미적용 시키고 싶다면 LOW로 변경한다
하지만 LOW로 변경하더라도
비밀번호 길이 정책은 적용된다
본인은 비밀번호를 root00으로 하려고 하기때문에
비밀번호에 계정명이 포함될수 있어야 하며
비밀번호의 길이가 8자리 이하도 가능해야한다

2. MySQL 비밀번호에 계정명이 포함될수 있도록 수정해보기

mysql> SET GLOBAL validate_password.check_user_name=OFF;

정책 변경후 적용됐는지 확인


3. MySQL 비밀번호 길이 정책을 변경하기

(본인은 6자리로 변경해보았다)

mysql> SET GLOBAL validate_password.length=6;

MySQL 비밀번호 길이 정책 수정
정책 변경후 적용됐는지 확인


4. MySQL 비밀번호에 포함될 대소문자 혼합 갯수 변경하기

mysql> SET GLOBAL validate_password.mixed_case_count=0;

MySQL 비밀번호에 포함될 대소문자 갯수 정책 수정
정책변경후 적용됐는지 확인


5. MySQL 비밀번호변경 해보기

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'root00';

원하는 비밀번호 root00으로 변경되었다


6. 변경된 비밀번호로 접속해보자

# mysql -u root -p

변경된 비밀번호로 MySQL 접속 성공

728x90
반응형