Database

MySQL 패스워드 분실시 대안 방법.

Dongkkase 2013. 2. 26. 11:21
반응형

간혹 서버를 인계받다보면 mysql의 root 패스워드가 상실된 상태에서 인계를 받기도 합니다. 

그럴 때 요청을 하여 패스워드를 알 수 있으면 정말 좋겠으나 뜻대로 되지 않는 경우가 허다하죠 ^^;

우선 서버에 원격 접근이 가능 하다는 전제하의 방법입니다.

Window 플랫폼.
시작 > 실행 > services.msc 입력 후 확인.
서비스에서 mysql 부분을 중지합니다. (혹은 작업 관리자에서 mysql 관련 프로세스를 종료합니다.)

시작 > 실행 > cmd 입력 후 확인 (커맨드 입력창을 엽니다.)
MySQL의 설치 디렉토리의 열린 커맨드창(ms-dos창)에서 bin까지 이동합니다. 
(예:  cd C:\Program Files\MySQL\bin)

mysqld.exe --skip-grant
(입력 후 실행)

위와 같이 입력하면 승인절차를 거치지 않도록 mysql 프로세스를 실행시킵니다. 

실행시킨 커맨드 창은 그대로 둔 뒤 하나의 ms-dos창을 더 열어 위의 경로까지 다시 이동합니다.

mysql.exe
(입력 후 실행)

use mysql;
UPDATE user SET password=PASSWORD('변경할패스워드') where user='root'; 
FLUSH PRIVILEGES; 
exit;

 

이제 mysqld.exe를 실행시킨  도스창을 종료하고, mysql.exe를 실행시킨 도스창을 종료합니다. 

그리고 서비스에서 mysql을 실행합니다.
만약 서비스에서 mysql이 실행이 되지 않을 경우 window 재부팅을 합니다 ^^


Linux 플랫폼.
[root@ns /root]# mysql.server stop
또는
[root@ns /root]# killall mysqld

위와 같은 방법으로 MySQL 데몬을 종료합니다. 이제 승인 절차를 거치지 않도록 MySQL 데몬을 실행합니다.

[root@ns /root]# safe_mysqld --skip-grant &
이제 MySQL root 패스워드를 변경합니다.

[root@ns /root]# mysql

use mysql;
UPDATE user SET password=PASSWORD('변경할패스워드') where user='root'; 
FLUSH PRIVILEGES; 
exit;

이제 MySQL 데몬을
[root@ns /root]#
위와 같이 종료하시고 다시 실행시켜 주시면 변경된 패스워드로 동작합니다.

반응형