Database/MySQL

MySQL root 패스워드 분실 시 재설정 방법

daeunnniii 2022. 6. 18. 23:18
728x90
반응형

1. mysqld 정지 및 MySQL 환경 변수 설정

mysqld를 정지해준 뒤, MySQL 환경 변수를 변경하여 비밀번호 없이 root로 로그인할 수 있도록 해준다.

$ systemctl stop mysqld
$ systemctl status mysqld

$ systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

 

2. MySQL root 로그인 및 비밀번호 변경

mysqld를 다시 가동하고 로그인을 한다. 비밀번호를 입력하지 않고 바로 Enter를 누르면 로그인에 성공한다.

$ systemctl start mysqld
$ mysql -u root -p
//패스워드 입력하지 않고 바로 엔터

 

 

패스워드 변경 단계에서 인터넷을 참고해서 명령어를 입력해도 계속 아래와 같은 에러가 발생했다..

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '("1234!") WHERE User='root'' at line 1

 

해결 방법은 다음과 같다.

우선, MySQL에서 root 패스워드를 지워버린다.

> UPDATE mysql.user SET authentication_string=null WHERE User='root';
> FLUSH PRIVILEGES;

 

다시 mysql에 로그인해서 접속한 뒤, 원하는 비밀번호로 변경한다.

> mysql -u root
> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<변경할 패스워드>';
> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

> exit;

 

이제 변경한 패스워드로 로그인이 가능해진다!

 

 

 

728x90
반응형