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

MySQL 패스워드 잊어버렸을 때 해결방법

by 안드레날린 2026. 5. 21.

해결 방법

systemd 환경변수 이용

1. 서비스 중지
systemd stop mysqld

2. skip-grant-tables 옵션 넣기
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

3. mysqld 시작
systemctl start mysqld

4. 패스워드 없이 접속
mysql -u root

5. 패스워드 변경
flush privileges;
alter user 'root'@'localhost' identified by 'NewPassword';
flush privileges;

6. 옵션 제거 및 정상 재시작
systemctl unset-environment MYSQLD_OPTS
systemctl restart mysqld

 

옵션

--skip-grant-tables
 : 권한 테이블 mysql.user를 검사하지 않도록 하는 옵션

 : 원래 정상 접속 시(client -> password auth -> mysql.user 검사 -> 접속 허용)

 : --skip-grant-tables 사용 시(client -> 바로 접속 허용)

 

--skip-networking: MySQL TCP 네트워크 포트를 아예 오픈 하지 않음

 : 만약 네트워크까지 열려 있으면 외부 공격자가 무비밀번호로 접속 할 수 있기 때문에 해당 여지를 원천적으로 차단

 : 참고사항으로 TCP는 막히지만 Unix Socket은 살아 있기 때문에 로컬 쉘에서는 접속이 가능한 부분

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

MYSQL 기본 사용법  (0) 2013.10.29