강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

MySQL강좌11편: MYSQL 실행시 사용자인증과정없이 실행하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

MySQL강좌11: MYSQL 실행시 사용자인증과정없이 실행하기

 

필자와 같은 서버관리자는 간혹 경험해 보았겠지만 MYSQL데이터베이스를 관리하다보면 MYSQL root패스워드 잊어버리는 경우가 종종 발생한다.  특히 여러대의 서버를 혼자서 관리하는 경우라면 흔하지 않게 경험해 보았을 것이다.  만약 여러분들이라면 이런 경우 어떻게 MYSQL root패스워드를 복구하는가?

 

이런 경우에 유일하게 MYSQL root패스워드를 복구할 수 있는 방법이 있다. 이를 위하여 먼저 MYSQL 사용자 인증과정없이 실행하는 의미에 대해서알아야 한다.

 

 

 

MYSQL을 실행할 때에 table grant권한을 생략하고 실행을 할 수 있다.  즉 패스워드가 설정되어있는 모든 사용자들이 패스워드없이 MYSQL에 바로 접속을 할 수 있기 때문에 주로 MYSQL root계정의 비밀번호를 잊어버렸을 경우에 table grant권한을 생략하여 MYSQL을 실행시킨 다음 MYSQL root사용자의 비밀번호를 변경하는 용도로 많이 사용된다. 

 

또한 사용자인증과정을 생략하여 MYSQL을 실행하면 MYSQL root사용자뿐아니라 일반사용자들도 패스워드없이 MYSQL로 바로 접속할 수 있다.

 

table grant권한없이 시작하려면 mysqld_safe명령어로 MYSQL시작시에 다음과 같이 --skip-grant-table옵션을 사용하면 된다.

 

[root@sulinux ~]#/usr/local/mysql/bin/mysqld_safe --skip-grant-table &

[1] 2517

[root@sulinux ~]#090428 23:26:53 mysqld_safe Logging to '/usr/local/mysql/data/sulinux.net.err'.

090428 23:26:53 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

 

[root@sulinux ~]#

 

위와같이 mysqld_safe명령어로 MYSQL을 시작할 때에 --skip-grant-table옵션을 사용하여 실행하면 MYSQL접속시에 패스워드없이 바로 접속할 수 있다.

 

다음은 위와같이 실행된 후에 ps명령어로 MYSQL 프로세스를 확인한 것이다. 보는바와같이 --skip-grant-table이라는 옵션이 적용되어 실행되었다는 것을 확인할 수 있다.

 

[root@sulinux ~]#ps -ef | grep mysqld

root      2517  2390  1 23:26 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-grant-table

mysql     2613  2517  1 23:26 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --skip-grant-table --log-error=/usr/local/mysql/data/sulinux.net.err --pid-file=/usr/local/mysql/data/sulinux.net.pid --socket=/tmp/mysql.sock --port=3306

root      2617  2390  0 23:26 pts/0    00:00:00 grep --colour=auto mysqld

[root@sulinux ~]#

 

이렇게 실행된 후에는 다음과 같이 MYSQL에 접속할 때에 패스워드없이 바로 접속할 수 있다.  다음은 MYSQL root사용자가 패스워드없이 바로 접속한 예이다.

 

[root@sulinux ~]#/usr/local/mysql/bin/mysql -u root mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.1.32 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> exit

Bye

[root@sulinux ~]#

 

다음은 MYSQL의 일반사용자인 tempuser라는 사용자가 패스워드없이 바로 접속한 예이다.

 

[root@sulinux ~]#/usr/local/mysql/bin/mysql -u tempuser temp_db2

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.32 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> exit

Bye

[root@sulinux ~]#

 

이를 이용하여 우리는 MYSQL root패스워드를 잊어버렸을 때에 재설정하기 위한 방법으로 사용할 수 있다. 바로이어서 설명하는 root패스워드 복구하는 설명을 보기 바란다.

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  92 명