윈도우 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) 파일에서 비밀번호를 다시 설정 해 주세요.
오늘은 여기까지 입니다. 수고 많으셨습니다.