뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (200)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (25)
      • Spring (16)
      • 데이터베이스 (6)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

[MySQL, 윈도우] root 계정 비밀번호 재설정
유용한 모든 것

[MySQL, 윈도우] root 계정 비밀번호 재설정

2022. 7. 7. 12:05
반응형

이번 포스팅에서는 윈도우에서 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가지가 있습니다.

  1. 기존에 사용되던 alter user 'root'@'localhost' identified with mysql_native_password by '{새 비밀번호}'; 명령어는 현재 모드에서는 동작하지 않는다.
  2. 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
    '유용한 모든 것' 카테고리의 다른 글
    • CS 정리 [자료구조]
    • [.gitignore] git에서 파일 및 폴더 숨기기
    • [Review] 객체 지향의 사실과 오해
    • [IT 포스팅] 개발자 생산성 습관에 대한 개발자들의 생각
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바