MySQL 루트 패스워드를 잘못 변경했다.

그래서 패스워드를 리셋하려고 구글링을 해서 이런 답변을 얻었다.

 

Reset MySQL 8.0 root Password in Windows

Reset MySQL 8.0 root Password in Windows. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

일단

 

1. mysql 서비스를 모두 종료한다.

2. 명령 프롬프트를 관리자 권한으로 실행하고

3. C:\Program Files\MySQL\MySQL Server 8.0\bin 경로로 들어가서

4. mysqld --console --skip-grant-tables --shared-memory

 

를 하면 된다는데 안된다.

ERROR

No such file or directory란다.

 


*** 실선 안에 있는 건 따라하지 마세요. 삽질의 기록입니다. ***

 

다시 구글링해서 mysqld --initialize 라는 명령어를 얻었다.

했더니 C:\Program Files\MySQL\MySQL Server 8.0에 data라는 폴더가 새로 생겼다.

이후 위에서 시도한 mysqld --console --skip-grant-tables --shared-memory를 다시 입력한다.

그리고 새로 명령 프롬프트를 띄워서 패스워드 없이 mysql에 접속을 시도한다.

  1. mysql -u root
  2. select authentication_string,host from mysql.user where user='root'; // 패스워드가 있는지 확인
  3. UPDATE mysql.user SET authentication_string='' WHERE user='root'; // 패스워드를 삭제함

여기까지 했으면 터미널 두 개를 다 닫고 다시 작업관리자-서비스에서 MYSQL80을 실행한다. 

 

 

그러면 이제 될 것 같지? 노노 천만의 말씀 만만의 콩떡(천부당만부당)이다!

 

다른 데이터의 패스워드를 바꾼 거라서 원래 있던 데이터는 여전히 로그인이 안 되고 먹통이다.


결국 

 

1. 아까 생긴 C:\Program Files\MySQL\MySQL Server 8.0\data 폴더를 삭제하고

2. 작업관리자-서비스에서 MYSQL80을 다시 중지한다.

3. 명령 프롬프트를 관리자 권한으로 다시 켜서

4. mysqld --console --skip-grant-tables --shared-memory 뒤에 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" 를 붙여서 입력.

5. 그리고 새로 명령 프롬프트를 띄워서 패스워드 없이 mysql에 접속을 시도한다.

    5-1. mysql -u root

    5-2. select authentication_string,host from mysql.user where user='root'; // 패스워드가 있는지 확인

    5-3. UPDATE mysql.user SET authentication_string='' WHERE user='root'; // 패스워드를 삭제함

 

여기까지 했으면

 

6. 터미널 두 개를 다 닫고

7. 다시 작업관리자-서비스에서 MYSQL80을 실행한다. 

 

그리고 대망의 마지막

alter user 'root'@'localhost' identified with mysql_native_password by 'password';

password 부분을 원하는 새 비밀번호로 입력하고 엔터를 땅 하면!

 

 

 

 

할렐루야!

+ Recent posts