2008. 10. 16. 17:58 DataBase/MySQL
mysql 패스워드 복구
※ 이 글은 지인을 통한 귀동냥과 인터넷 검색을 이용한 정보를 가공한 것이다.
회사에 mysql 서버가 있는데 댄장.. 패스워드를 모른다.. 사용자도 무엇이 있는지 알 수가 없다.
대략 난감... mysql을 --skip-grant 모드로 띄우라고 하던데..
일단 OS는 Sun Solaris 5.8 for Sparc, mysql은 4.0.17
0. mysql 종료
- 기동스크립트가 있는 경우
# /etc/init.d/mysql stop
- 기동스크립트가 없는 경우 걍..(요건 해보지 않았다.)
# killall mysqld
1. 사용자 인증 우회
- /etc/init.d/mysql의 start 부분에 --skip-grant-table 추가 후
# /etc/init.d/mysql start
또는
- mysqld_safe에 옵션을 주고 실행
# cd /usr/local/mysql/bin
# ./mysqld_safe --skip-grant-table &
2. 패스워드 없이 mysql root 계정 로그인(/usr/local/mysql/bin이 PATH에 있다고 가정)
# mysql -u root mysql
3. update문을 이용하여 mysql DB의 user TABLE의 root 패스워드를 업데이트한다.
mysql> update user set password=password('PASSWORD') where user='root';
4. 변경된 mysql 권한 테이블에 변경된 권한 설정 적용
mysql> flush privileges;
5. mysql 종료
mysql> exit
6. 일반적인 방법으로 mysql 시작
0.번항목을 참고하여 mysql 정지
1.번항목에서
- /etc/init.d/mysql의 start 부분에 --skip-grant-table 제거 후
# /etc/init.d/mysql start
또는
- mysqld_safe 실행
# cd /usr/local/mysql/bin
# ./mysqld_safe &