알아가기/Java

[MySQL] 로그인 비밀번호 바꾸기 ver. 8.0.31

XEV 2023. 2. 9. 00:29

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

로컬 환경에서 Mac 과 Windows 를 번갈아 가며 MySQL 을 사용하는데 서로 비밀번호가 일치하지 않았다.

이 두 MySQL의 서로 다른 비밀번호를 일치시켜 주는 작업을 하게 되었고, 로컬에서만 교육적으로 사용하고 있기 때문에 최저 수준의 보안과 비밀번호 4 자리로 바꾸기로 하였다.

단순 검색을 통해 비밀번호 변경 명령어를 찾고, 4 자리로 바꾸려고 보니 

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

에러를 출력하였다. MySQL 비밀번호 지정을 해둔지 좀 오래되어 어떤 조건으로 설정해 놓았는지 기억나지 않았다. 여하튼, 현재 정책 요구사항에 충족하지 않는 단다.

 

 

 

 

 

최저 보안 & 4 자리 비밀번호

로컬 환경에서만 사용할 것이기에 편의성에 가장 우선순위를 두고 최저 보안과 4자리 길이의 비밀번호를 설정하는 것을 기반으로 이 글이 작성되었다.

mysql -u root -p

일단, MySQL 에 진입한다.

 

 

 

Enter password: ********

비밀번호를 입력한다. (변경 전에는 8 자리로 지정을 하였다.)

 

 

 

비밀번호를 입력하고 나면 위와 같이 출력되고 mysql> 에 커서가 위치한다.

 

 

 

SHOW VARIABLES LIKE 'validate_password%';

현재 지정상태를 확인해 본다.

비밀번호 최소 길이는 8 자리이고, policy 는 MEDIUM 으로 설정되어 있다.

 

 

 

SET GLOBAL validate_password.policy=LOW;

MEDIUM -> LOW 로 변경을 한다.

참고로 버전 8 이상에서는 validate_password.policy 처럼 .policy 를 써야 하고,

그 이하에서는 validate_password_policy 처럼 _policy 를 써야 한다는 이야기가 있다.

나의 MySQL 은 8.0.31 이기에 위의 명령어가 잘 적용되었다.

 

 

 

SET GLOBAL validate_password.length = 4;

비밀번호의 길이를 4 자부터 가능하게끔 허용시켜 준다.

 

 

 

ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';

이제 비밀번호 설정 시간이다.

아이디는 'root' 로 설정되어 있어 ALTER USER 'root'@'localhost' 이 부분은 그대로 입력하였고, 

IDENTIFIED BY '1234'; 비밀번호는 '1234' 네 자리로 설정하였다.

 

 

 

FLUSH PRIVILEGES;

 

FLUSH PRIVILEGES 를 입력하여 마무리한다.

 

 

 

quit

설정을 끝마쳤으면 MySQL 을 빠져나온다.

 

 

 

 

 

변경 확인

mysql -u root -p

Enter password: 1234

SHOW VARIABLES LIKE 'validate_password%';

를 통해서 출력 결과를 확인하고 모든 변경이 정상적으로 되었음을 알 수 있다.