본문 바로가기
데이터베이스(DB)/MySQL

MySQL root 비밀번호 초기화

by 서어켜엉 2024. 10. 16.

 

Root 비밀번호를 잊어버렸거나, 설정을 했는데 오타가 나서 등 여러 이유로 비밀번호를 모를 때 초기화 하는 방법

 

 

#1 MySQL 정지
systemctl stop mysqld

#2 MySQL 환경변수를 변경
## 비밀번호 없이 Root 로그인이 가능하도록 변경
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

#3 MySQL 재시작
systemctl start mysqld

#4 MySQL 접속 후 root 비밀번호를 null로 초기화
mysql -u root -p
UPDATE mysql.user SET authentication_string = null where user = 'root';
FLUSH PRIVILEGES;
quit

#5 MySQL 재접속. 현재 비번은 null이므로 엔터치고 접속하면 됨
mysql -u root -p

#6 Root 비밀번호 재설정 후 MySQL 접속해제
alter user 'root'@'localhost' identified with caching_sha2_password by '[New Password]';
FLUSH PRIVILEGES;
quit

#7 MySQL 정지 후 처음에 지정했던 환경변수 제거 및 재시작
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld

 

 

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

 

비밀번호 재설정 시 이런 에러가 발생할 때가 있다.

비밀번호 설정 정책이 맞지 않아서 발생하는 것으로, 비밀번호의 강도가 MEDIUM 또는 STRONG 로 설정되어 있을 가능성이 있음.

(LOW로 설정되어 있으면 발생하지 않는다.)

 

1. 비밀번호 정책을 바꾼다.

# 비밀번호 정책 확인
mysql> show variables like 'validate_password%';

# 비밀번호 정책 변경
mysql> SET GLOBAL validate_password.policy=LOW;

 

2. 정책에 맞는 비밀번호를 설정한다.

LOW. LENGTH >= 8
길이가 최소 8자 이상

MEDIUM LENGTH >= 8, numeric, mixed case, and special characters
길이가 최소 8자 이상, 숫자, 대문자, 소문자, 특수문자가 모두 포함 설정

STRONG LENGTH >= 8, numeric, mixed case, and special characters and dictionary file
길이가 최소 8자 이상, 숫자, 대문자, 소문자, 특수문자가 모두 포함 설정 및 dictionary file 에 포함된 단어 사용 불가

'데이터베이스(DB) > MySQL' 카테고리의 다른 글

amazon linux 2023 mysql 설치  (1) 2024.10.16
[SQL] 키 (Key)  (1) 2023.12.23