질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

mysql 루트패스워드 잃어버렸을때

작성자 정보

  • hanserver 작성
  • 작성일

컨텐츠 정보

본문

MySQL 에서 사용하는 root 암호가 뭔지 모르다면 다음 처럼 바꿉니다.
1. 우선 다음처럼 MySQL 서버데몬을 모조리 죽여 버립니다.
[root@linuxer mysql]# ps -aux | grep my
[root@linuxer mysql]# kill -9 (프로세스 ID)
[1]+ Killed ./bin/safe_mysqld
2. 그다음 --skip-grant 옵션을 이용
권한테이블을 사용하지 않는 옵션으로 데몬을 띄웁니다.
[root@linuxer mysql]# ./bin/safe_mysqld --skip-grant &
[1] 7759
[root@linuxer mysql]# kill 7743: No such process
Starting mysqld daemon with databases from /usr/local/mysql/data
[root@linuxer mysql]#
여기서 kill 7743: No such process 이런 메시지는 safe_mysqld 스크립트
가 가장 마지막에 실행중이던 데몬의 프로세스를 죽이고 다시 시작하려다 못찾아
나오는 에러 메시지 이지만 그냥 데몬이 떠 버렸으니 신경 쓰지 않아도 됩니다.

프로세스를 확인해 보면....
[root@linuxer mysql]# ps -aux | grep my
root 7759 0.0 0.6 1668 812 pts/4 S 09:49 0:00 sh ./bin/safe_mys
root 7775 0.0 0.5 2520 696 pts/4 SN 09:49 0:00 /usr/local/mysql/
root 7777 0.0 0.5 2520 696 pts/4 SN 09:49 0:00 /usr/local/mysql/
root 7778 0.0 0.5 2520 696 pts/4 SN 09:49 0:00 /usr/local/mysql/
이 상태에서는 권한테이블을 사용하지 않으므로 어떤 호스트에서도 아무
사용자로 모든 DB에 접속이 가능합니다.
얼른 작업을 끝내고 권한을 설정해 DB를 다시 띄워야 합니다. ^,^
3. 자 이제 마음놓고 root 로 들어갑니다.
권한을 설정하는 데이타 베이스 mysql 을 이용하겠습니다.
[root@linuxer mysql]# ./bin/mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.22.22
Type 'help' for help.
mysql>
4. 다음처럼 새로운 root 의 암호로 바꾸고
mysql> UPDATE user SET Password=PASSWORD('newpasswd') WHERE
user='root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 2 Changed: 1 Warnings: 0
5. 그다음 권한 테이블을 다시 읽고
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
빠져 나갑니다.
mysql> q
Bye
[root@linuxer mysql]#
6. MySQL 서버 데몬을 죽여보도도록 하겠습니다.
그런데 이미 FLUSH PRIVILEGES 옵션으로 권한이 재 설정 된 상이므로
아까 바꾼 암호를 입력해야 합니다.
[root@linuxer mysql]# ./bin/mysqladmin -uroot -p***** shutdown
[root@linuxer mysql]# mysqld daemon ended
[1]+ Done ./bin/safe_mysqld --skip-grant
7. 이제 권한 테이블을 이용한 원래의 스크립트를 이용 데몬을 다시 띄웁니다.
[root@linuxer mysql]# ./bin/safe_mysqld &
[1] 7859
[root@linuxer mysql]# Starting mysqld daemon with databases from /usr/local/mysql/data
[root@linuxer mysql]
8. 자 이제 드디어 아까 바꾼 암호로 들어 갈 수 있습니다.
다음의 방법으로 하면 됩니다.
a. # ./bin/mysql -uroot -p**** mysql 를 써도 되고
b. # ./bin/mysql -uroot -p mysql 를 쓰면 암호를 물어 봅니다.
보안상 b 방법을 권해 드립니다. (누가 뒤에서 보면 안되니까요!)
[root@linuxer mysql]# ./bin/mysql -uroot -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.22.22
Type 'help' for help.
mysql> select Host ,User from user ;
+-------------------+-------+
| Host | User |
+-------------------+-------+
| localhost | root |
| linuxer.ditco.com | root |
| localhost | |
| linuxer.ditco.com | |
| localhost | mysql |
+-------------------+-------+
5 rows in set (0.00 sec)
mysql> q
----------
zzaratra wrote..
$ ./safe_mysql -Sg
일단 지금 실행되는 mysql  데몬을 kill 한 다음
윗 처럼 Sg 옵션을 주고 실행시키면 패스워드 물어 보는것 없이
실행 됩니다....
 
 

hanserver

   

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,341 명
  • 현재 강좌수 :  37,019 개
  • 현재 접속자 :  385 명