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 |