Skip to content

mysql root password를 분실했어요

Seogeurim edited this page Nov 29, 2021 · 4 revisions
  • 작성자: @Yunseo Hwang
  • 작성일: 2021.11.01
  • Description: 너무 오랫동안 학교 노트북 내 설치된 mysql을 사용하지 않았더니 비밀번호를 잊었습니다... 이걸 해결하는 과정을 적어봤습니다.

너무 오랫동안 mysql에 접속하지 않았더니 mysql password를 잊어버렸습니다.. 생각나는 password를 모두 입력해봤지만 나오는 것은 Access denied for user 뿐,,,, 하지만 local에 설치되어 실행되고 있는 mysql이었기 때문에 초기화할 수 있는 방법이 있을 거라 생각하고 실행에 옮겨봤습니다.

mysql 서버를 종료하고 다시 실행할 수 있는 환경이 전제가 되어야 합니다. 여기서는 ubuntu 64bit 20.04.1 버전 환경입니다.

핵심 해결책은 mysql 서버를 종료하고 권한을 확인하지 않는 형태로 서버를 실행한 후에 비밀번호를 얼른 변경하고 다시 mysql 서버를 실행하는 것입니다.

  1. 먼저 기존에 실행되는 mysql 서비스 데몬을 종료시킵니다.
$ sudo service mysql stop
  1. 그런 다음 mysql을 안전모드 + 인증 생략 옵션으로 실행합니다.
$ sudo mkdir /var/run/mysqld
$ sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables & 
  1. 인증 생략 옵션으로 mysql을 실행했기 때문에 접속시 인증하지 않아도 됩니다.
$ sudo mysql -u root
  1. 접속이 되었으면 아래의 명령을 통해 비밀 번호를 변경해줍니다.
UPDATE mysql.user SET authentication_string=null WHERE User='root';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password_here';
flush privileges;
exit;
  1. 마지막으로 변경이 되었는 지 테스트해봅니다.
$ sudo killall -u mysql
$ sudo service mysql start
$ mysql -u root -p
# 변경이 제대로 되었으면 접속이 될 것입니다!!

참고

Clone this wiki locally