리눅스

Your password does not satisfy the current policy requirements

Your password does not satisfy the current policy requirements


MySQL 또는 MariaDB 설치를 완료한 후 새로운 유저를 생성하여 비밀번호를 설정하려 할 때, 아래와 같이 에러 메세지가 발생할 수 있습니다.

create user 'myuser'@'localhost' identified by '[my password]';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

 

위 에러는 패스워드 복잡성 체크 플러그인에 의해 너무 간단한 암호를 사용하여 발생하는 문제입니다. 메세지 내용대로 현재 정책에 맞지 않는 암호를 지정했기 때문에 암호를 생성할 수 없다는 의미입니다.

 

해결 방법 (MySQL)


해결 방법은 간단합니다. MySQL의 설정에서 암호 확인 정책을 변경할 수 있습니다. /etc/my.cnf 를 편집하여 [mysqld] 항목 하단에 아래와 같이 내용을 추가해주세요.

# vim /etc/my.cnf

[mysqld]
validate_password_policy=LOW
  • LOW : 8자 이상의 암호면 모두 허용
  • MEDIUM : 8자 이상 및 숫자, 영문 대/소문자 그리고 특수문자를 모두 포함해야 함
  • STRONG : 8자 이상 및 숫자, 영문 대/소문자, 특수문자 그리고 Dictionary-File을 모두 포함해야 함

특별한 경우가 아니면 LOW, MEDIUM으로 설정하셔도 될 것 같습니다.

이후 MySQL재시작합니다.

# service mysql restart
또는
# systemctl restart mysql

 

해결 방법 (MariaDB)


MariaDB는 조금 다릅니다. my.cnf.d 디렉토리의 cracklib_password_check.cnf 파일을 수정해야 합니다.

plugin-load-add=cracklib_password_check.so 부분의 앞에 ; 를 붙여서 비활성화 해주시면 됩니다. 저장하고 빠져 나옵니다.

# vim /etc/my.cnf.d/cracklib_password_check.cnf

[mariadb]
;plugin-load-add=cracklib_password_check.so

이후 MariaDB재시작합니다.

# service mysql restart
또는
# systemctl restart mysql

 

그 외


만약 위 방법으로도 해결되지 않거나 다른 방법을 사용해야 한다면, MySQL 플러그인 디렉토리(/usr/lib64/mysql/plugin)로 이동합니다.
(* 주의 – 이 방법은 보안상 권장되지 않습니다!)

# cd /usr/lib64/mysql/plugin

 

다음으로 MySQL의 경우 validate_password.so 파일을, MariaDB의 경우 cracklib_password_check.so 파일을 찾아 이름을 다른 이름으로 바꾸거나 삭제하시면 됩니다.

이후 MySQL을 재시작하면 더 이상 복잡한 암호 체크를 진행하지 않습니다.

 

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

View Comments

  • /etc/my.cnf에 validate_password_policy=LOW라고 추가하고
    mysql데몬 재시작하면 데몬이 구동되지 않습니다.

    • 현재 사용하시고 계신 MySQL 또는 MariaDB의 버전에 따라 동작하지 않을 수 있습니다.
      또한 /etc/my.cnf의 [mysqld] 하단에 넣어졌는지 확인해보세요.
      그래도 문제가 발생한다면, 재시작 시 오류 메세지가 어떤 식으로 나오는지 알 수 있을까요?

Recent Posts

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

4주 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

4주 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

4주 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

4주 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

6개월 ago

에어팟 프로 2 케이스 스피커 소리를 완전히 끄는 방법

애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…

9개월 ago