윈도우 XAMPP 환경에서 mysql (mariaDB 이하 mysql) DB root 패스워드를 까먹었을 때 비밀번호 초기화 하는 방법을 알려드립니다.
mysql 과 php 버전 별로 조금씩 명령어나 방식이 다를 수 있습니다. 저는 XAMPP php 8.12 버전을 기준으로 설명해 드리도록 하겠습니다.
이 글의 목차
사전 준비 – 서버 정지

XAMPP를 테스트용 혹은 개인용으로 굴리다 보면(굴리다 라고 쓰고 방치한다 읽는다) root 패스워드를 까먹어서 난처할 때가 있습니다.

mysql DB root 패스워드 리셋 하기 전 먼저 서버를 정지 합니다.
XAMPP 윈도우 버전의 경우 xampp_stop.exe 파일로 서버를 정지 하시기 바랍니다.
xampp-control.exe 패널로 껏다 켰다 하다 보면 DB 가 꼬여 실행이 되지 않는 경우가 있더군요. 반드시 서버를 키고 끌때는 xampp_start.exe 와 xampp_stop.exe 파일을 이용해 주세요.

xampp_stop.exe 파일을 실행하면 위와 같은 서버 종료 로직이 실행 되는데 창이 자동으로 꺼질 때 까지 기다려 주시면 됩니다.
제 서버 환경에서는 서버 종료 까지 약 10초 미만 소요되었습니다. 만약 여러분의 PC가 1분 이상 기다려도 창이 꺼질 생각 없다면 그땐 강제로 꺼 주세요.
그리고
작업 전 반드시 mysql DB 를 통으로 백업하시기 바랍니다. 백업은 사랑입니다.
Mysql DB 무인증 안전모드 실행

“xampp-Control.exe“을 실행하여 컨트롤 패널을 실행합니다.

“Shell 버튼“을 클릭하여 Shell 창을 엽니다.

Shell 창이 뜬다면 위 이미지처럼 입력해 주세요.
mysqld --skip-grant-tables이 명령어는 mysql DB 무인증 안전모드로 실행하는 명령어 입니다.
입력하고 나면 아무 반응 없을 것입니다. 이 창을 끄지 마세요.

[1] 창을 끄지 않은 상태에서
[2] DB가 자동으로 실행됨을 확인하였다면
[3] XAMPP 컨트롤 패널의 Shell 버튼을 클릭하여
[4] 새 Shell 창을 하나 더 엽니다.
Mysql DB root 패스워드 재설정
자 이제 DB 비밀번호 를 원하는 것으로 변경해 보겠습니다.

새로 띄운 Shell 창에서 mysql 접속 합니다.
mysql -u root -p이렇게 입력하고 Enter 를 누릅니다. mysql 입니다 mysqld 아닙니다.
-u는 접속할 아이디를 의미하며 -p는 패스워드를 의미합니다.
그리고 “Enter password:” 즉 패스워드를 물어 볼 것입니다.
무인증 안전모드를 사용 중 이므로 패스워드 입력 없이 공란 상태로 “Enter” 를 누릅니다.

위와 같이 MariaDB [(none)]> 라고 떴다면 성공적으로 DB에 접속한 것입니다.

FLUSH PRIVILEGES;위와 같이 명령어를 입력합니다. Query OK 라고 떴다면 성공입니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운패스워드';이제 비밀번호 변경할 차례입니다. 위와 같이 입력하여 패스워드를 새롭게 설정해 주세요.
구 버전에서 사용했던 명령어 UPDATE 로는 비밀번호가 변경되지 않을 것 입니다. ALTER 명령어를 이용해 주세요.
예전에서는 패스워드가 그냥 변경 되었던 것 같은데 8.2.12 버전에서는 FLUSH PRIVILEGES; 명령어를 먼저 해줘야 ALTER 명령어가 먹히더군요. 왜 그런지는 잘 모르겠습니다.

역시 Query OK 가 뜬다면 성공적으로 mysql DB root 패스워드가 변경된 것 입니다. quit 를 입력하여 창을 닫습니다.
이제 mysqld –skip-grant-tables 명령어를 날렸던 Shell 을 꺼주시고 서버 재시작 해주세요.
변경된 비밀번호 확인해 보기

변경된 비밀번호로 phpmyadmin 이 정상적으로 접속하는지 확인해 보겠습니다. XAMPP 에서 phpmyadmin 관련 config를 수정하겠습니다.
“config“ -> “phpmyadmin(config.inc.php)” 실행 합니다.

21번째 줄
$cfg[‘Servers’][$i][‘password’] =
항목에 새로운 패스워드를 입력해 주고 저장합니다.

phpmyadmin 다시 실행해 보고 접속이 되는지 확인합니다.
그래도 phpmyadmin 접속 안된다면?
그래도 phpmyadmin 으로 mysql DB에 접속이 안 되는 경우가 있습니다.
이럴 경우 일단 DB 패스워드가 정상적으로 변경된 것인지 확인부터 하세요.

정상적인 서버 운영중인 상황에서 XAMPP 컨트롤 패널 -> Shell 버튼을 눌러 창을 띄웁니다. 안전모드 아닙니다.

mysql -u root -p위와 같이 입력합니다. Password를 물을 것인데 변경된 패스워드를 입력하여 정상적으로 DB에 접근할 수 있는지 확인하시면 됩니다.
위와 같이 MariaDB [(none)]> 상태가 되면 정상 로그인 된 것입니다. mysql DB 비밀번호는 잘 바뀐 것 입니다.
어? 근데 phpmyadmin 접속 안되는데?
‘그렇다면?’
그렇습니다. 이런 경우는 phpmyadmin 어딘가가 깨진 것입니다. 원인을 찾기 보다는 phpmyadmin 재설치 하시는 것을 권장 합니다.
XAMPP 백업본이나 배포본의 xampp/phpmyadmin 폴더를 그대로 복사하여 그대로 운영중인 서버에 치환하시고 phpmyadmin(config.inc.php) 파일에서 비밀번호를 다시 설정 해 주세요.
오늘은 여기까지 입니다. 수고 많으셨습니다.
Thanks for the practical article. The points were helpful for readers comparing options and planning the next step. Ref 1ncbw4r.
Zones range from Elwynn Forest to the Gates of Ahn’Qiraj. e82b13e1.
Skin options let players change how Tommy looks on the street. cb9e7bcd.
The pixel-art style gives the Pokemon world a retro feel. 43fb7c09.
Story details reveal more about the game’s troubled world. 6c298a8c.
The note that ALTER USER only works after running FLUSH PRIVILEGES in skip-grant-tables mode is the part I’d have missed, since older guides just say UPDATE. One practical tweak: after restarting normally, run mysql -u root -p and check the plugin column with SELECT user, host, plugin FROM mysql.user WHERE user=’root’; if it shows auth_socket or unix_socket instead of mysql_native_password, phpMyAdmin can still fail even with the right password. Worth adding that check before reinstalling anything.