DBMS/RDBMS - MySQL

[MySQL] ERROR 1819(HY000) 해결법

소노 2023. 9. 7. 18:09

MySQL 에서 유저를 새로 등록할 때 에러가 발생하는 경우가 있다.

 

예시로 test_user 라는 이름을 가진 유저를 비밀번호 1234 로 설정해서 만들어 보자.

 

mysql>create user test_user@localhost identified by '1234';

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

비밀번호 설정할 때 1234 라는 비밀번호가 비밀번호 정책에 의해서 에러가 나는것 이다.

비밀 번호 정책을 살펴 보자.

validate_password_policy 가 MEDIUM으로 설정되어 있다. validate_password_policy는 LOW, MEDIMU, STRONG 3단계로 이루어져 있다.

 

LOW인 경우 길이만 지켜주면 된다. 최소 8자 이상의 비밀번호가 되어야 한다.

MEDIUM인 경우 길이와  숫자, 대문자, 소문자, 특수문자가 모두 포함된 비밀번호가 되어야 한다.

STRONG인 경우 dictionary file 이란 것을 등록해서 사용하게 되는데, 이 파일에 포함된 단어는 비밀번호로 사용할 수 없게 된다.

 

보안상 문제 때문에 이런 정책에 맞게 사용하는 것인데, 연습만 할 목적으로 만드는 것이므로 (잊어버릴 수 있으니깐) LOW를 사용 할 것이다.

 

즉 앞서 설정한 1234 라는 비밀번호를 사용할수는 없고 validate_password_policy를 LOW로 낮춰주고 8자 이상으로 만들어야 한다.  다음 쿼리로 낮춰 줄 수 있다.

 

mysql 5버전과 8버전이 다르다.

 

먼저 mysql 5버전은

set global validate_password_policy=LOW;

로 작성해주면 되고,

 

mysql 8버전은

이런식으로 해주면 된다.

 

mysql을 재시작하면 다시 MEDIUM으로 바뀐다.

하지만 계정을 생성할 일은 많지 않기 때문에 필요할 때만 설정해서 사용하자.

validate_password_policy 가 LOW로 바뀌었는지 확인해 보자.

LOW 로 잘 바뀐것을 볼 수 있다.

다시 유저를 추가 해 보면,

성공 했다!