반응형
이번 포스팅에서는 윈도우에서 MySQL의 비밀번호 재설정하는 방법을 알아보겠습니다.
전체적인 순서는 아래와 같습니다.
1. MySQL 서비스 중지
2. 인증없이 접속할 수 있도록 재시작 (-skip-grant-tables 모드)
3. root 계정 접속 및 비밀 번호를 null로 설정
4. root로 비번 없이 접속 후 비밀번호 변경 (기존 모드 종료)
5. MySQL 서비스 시작
1. MySQL 서비스 중지
관리자 권한으로 명령 프롬프트(cmd)에 접속해야합니다.
아래 명령으로 작동 중인 서비스를 중지합니다.
net stop MySQL80
2. 인증없이 접속할 수 있도록 재시작 (-skip-grant-tables 모드)
본인 PC에서 Data 경로를 확인해야합니다.
필자는 C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Data
입니다.
명령 프롬프트에서 아래 명령으로 -skip-grant-tables 모드룰 실행합니다.
mysqld --datadir="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Data" --console -skip-grant-tables --shared-memory
3. root 계정 접속 및 비밀 번호를 null로 설정
이제 새로운 cmd 창에서 MySQL 서버에 접속해봅시다. (관리자 권한으로 실행!)
mysql -u root
이제 비밀번호를 재설정해야하는데 주의할 점 2가지가 있습니다.
- 기존에 사용되던
alter user 'root'@'localhost' identified with mysql_native_password by '{새 비밀번호}';
명령어는 현재 모드에서는 동작하지 않는다. update user set authentication_string='{새 비밀번호}' where user='root';
로 진행할 시 해쉬화가 되지 않는다.
그래서 일단 비밀번호를 null로 설정해야합니다.
user mysql;
update user set authentication_string=null where user='root';
select authentication_string from user; // null로 설정된 비밀번호 확인 가능!
flush privileges;
4. root로 비번 없이 접속 후 비밀번호 변경 (기존 모드 종료)
이제 기존 접속을 종료하고 다시 root로 접속합니다. 이때 비밀번호 없이 접속 가능합니다.
mysql -u root
이제 alter 명령어로 비밀번호를 재설정해봅시다.
alter user 'root'@'localhost' identified with mysql_native_password by '{새 비밀번호}';
use mysql
select authenticcation_string from user; // 해쉬화된 비밀번호 확인 가능!
5. MySQL 서비스 시작
이제 다시 MySQL을 재가동해야합니다.
그전에 -skip-grant-tables 모드를 종료(Ctrl+c)시키고 새 프롬프트에서 아래 명령어를 입력하여 시작합니다.
net start MySQL80
그럼 성공적으로 MySQL 접속이 가능해집니다 :)
반응형
'유용한 모든 것' 카테고리의 다른 글
CS 정리 [자료구조] (0) | 2022.04.13 |
---|---|
[.gitignore] git에서 파일 및 폴더 숨기기 (0) | 2021.12.24 |
[Review] 객체 지향의 사실과 오해 (0) | 2021.12.15 |
[IT 포스팅] 개발자 생산성 습관에 대한 개발자들의 생각 (0) | 2021.12.06 |
[Github] Repository(레파지토리)에 Git clone/pull/push하기 (0) | 2021.06.07 |