-
[MySQL] MySQL 8.0 비밀번호 분실 시 해결 방법(in Windows)DataBase/MySQL 2020. 12. 8. 05:44
mysql 에서 비밀번호를 분실했을 때 구글링을 하면
"mysql 서비스를 종료 후,
cmd에서 mysqld --skip-grant 를 실행하고,
새 cmd 창을 열어 mysql -u root 을 실행하세요'
이런 답변이 가장 많이 나온다...
하지만 나는 mysqld --skip-grant 실행 시, 다른 사람들과 다르게 cmd창이 멈추지 않고 다시 프롬프트가 활성화되었다.
이후 새 cmd창에서 mysql -u root 을 실행하면 error 2003(서버가 꺼져 있음)이나 error 1045(비밀번호 틀림)이 출력되었다.
mysqld --skip-grant이 동작하지 않아 '로그아웃한 상태로 서버를 작동시키는 것'부터 실패한 것이다.
아마 버전 차이로 인한 문제였던 듯 싶다. 위와 같은 방법이 성공한 블로그들은 mysql 5.x 이하 버전이었던 것으로 기억한다.
MySQL 8.0 의 경우 아래의 방법을 따라하면 비밀번호 분실 시 재설정이 가능하다.
검색어에 8.0 진작 넣을걸.....1. MySQL 서비스 중지
: 작업관리자 - 서비스 탭 - MySQL 우클릭 - 중지
2. 비밀번호를 변경할 init 텍스트파일 생성
(파일 이름, 파일 위치는 예시)
- 파일 이름 : mysql-init.txt
- 파일 위치 : C
- 파일 내용
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
* MyNewPass 에 변경할 비밀번호를 입력
3. 관리자 권한으로 cmd 실행
4. 아래 코드 실행
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" C:\> mysqld --init-file=C:\\mysql-init.txt
※MySQL 설치 마법사로 MySQL을 설치한 경우, --defaults-file 옵션이 필요함
C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt
* --defaults-file 디렉토리는 '제어판 - 서비스 - MySQL 우클릭 - 속성 - 실행 파일 경로'에서 확인 가능
5. 프롬프트가 멈추면 성공
=> CMD창을 닫지 않은 채로 mysql을 실행하면 변경한 비밀번호로 로그인 가능!
Reference : dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] DATE_FORMAT() - 날짜 데이터의 출력 형식을 지정하는 함수 (0) 2023.02.12 [프로그래머스] 주문량이 많은 아이스크림들 조회하기 - MySQ (0) 2023.02.02 [프로그래머스] 성분으로 구분한 아이스크림 총 주문량 - MySQL (0) 2023.02.01 [프로그래머스] 과일로 만든 아이스크림 고르기 - MySQL (0) 2023.02.01 [프로그래머스] 인기있는 아이스크림 - MySQL (0) 2023.02.01