[윈도우] MySQL root 비밀번호 리셋
Windows mysql 관리자 패스워드(password) 분실시 암호 재설정 방법(변경 방법) ( mysql 비밀번호(비번) )
//-----------------------------------------------------------------------------
* (참고) 리눅스에서 mysql 비번 변경 방법
https://codens.tistory.com/2609
//-----------------------------------------------------------------------------
* 서비스 정지
- services.msc 에서 mysql 서비스명 확인,
version 5.7의 경우 : mysql57
net stop mysql57
//=================
* c:\mysql-init.txt 파일 작성
- MySQL 5.7.6 이상
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
flush privileges;
- MySQL 5.7.5 이하
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
flush privileges;
//=================
* 초기화 모드로 서버 시작
cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --init-file="C:\mysql-init.txt"
콘솔창에 명령을 입력할수 없는 상태로 멈춘다 -> 정상
//========
* MySQL 중지
작업관리자로 mysqld 프로세스를 종료 시킨다.
tasklist | find "mysqld"
Taskkill /IM mysqld.exe /F
//========
* 서비스 시작
net start mysql57
* MySQL 접속
//===================================================
//참고
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html
* 현재 접속 가능한 상태에서 변경 쿼리
- 5.7.6이상에서 패스워드 변경 쿼리
UPDATE mysql.user SET authentication_string= password('MyNewPass') WHERE User = 'root';
or
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
- 5.7.5이하에서만 가능
UPDATE mysql.user SET password= password('MyNewPass') WHERE User = 'root';
//========
//참고
use mysql;
UPDATE user SET Host = 'localhost' WHERE User = 'root';
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
//==========
* 리눅스에서 서비스 제어, mysql 서비스 중단
kill `cat /mysql-data-directory/host_name.pid`