DB/MySQL
MySQL root 패스워드 분실
적외선
2015. 5. 21. 17:04
목차
[숨기기]mysqld 중지
[root@localhost ~]# service mysqld stop
Stopping MySQL: [ OK ]
mysqld_safe 실행
[root@localhost ~]# /usr/bin/mysqld_safe --skip-grant & [1] 32055 Starting mysqld daemon with databases from /var/lib/mysql
→ 이제 패스워드 없이 mysql에 접속할 수 있게 되었다.[1]
새 패스워드 지정
mysql 콘솔로 들어가자.[2]
/usr/bin/mysql -uroot mysql
다음 SQL 명령어를 입력하여 원하는 패스워드로 변경한다.
update user set password=password('패스워드') where user='root'; flush privileges; quit
- 실행 예시
[root@localhost ~]# /usr/bin/mysql -uroot 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 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> update user set password=password('P@ssw0rd') where user='root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye
mysqld 재시작
이제 패스워드를 입력해야만 mysql을 사용할 수 있도록 하기 위해, mysqld를 재시작한다.
[root@localhost ~]# service mysqld restart STOPPING server from pid file /var/run/mysqld/mysqld.pid 120229 13:08:54 mysqld ended Stopping MySQL: [ OK ] Starting MySQL: [ OK ] [1]+ Done /usr/bin/mysqld_safe --skip-grant
- → 백그라운드로 실행 중이던 무인증 안전모드 mysqld 프로세스가 중지되고 정상모드 mysqld로 재시작되었다.
같이 보기
주석
- ↑ 로컬에서는 인증 없이 mysql의 root 권한을 사용가능하게 됨
- ↑ ERROR 1049 (42000): Unknown database 'mysql' 라고 나오면서 안들어 가지는 경우가 있을 수 있는데, mysql 설치 이후 한번도 root 패스워드를 지정하지 않은 상태이다. 이 때는 본 문서를 따르지 말고
service mysqld restart
한다. 그러면 mysqladmin을 통한 패스워드 설정 방법이 나올 것이다.
참고 자료
출처 - http://zetawiki.com/wiki/MySQL_root_%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C_%EB%B6%84%EC%8B%A4#mysqld_.EC.A4.91.EC.A7.80