본문 바로가기
IT/DBMS 공통

mysqld_safe

by 최고영회 2013. 12. 24.
728x90
반응형
SMALL

1 : MYSQL 데이터베이스를 실행하는 mysqld_safe에 대하여

 

 

mysqld_safe명령어는 MYSQL 데이터베이스를 시작(실행)하는 MYSQL명령어입니다.  MYSQL을 실행하기 위하여 /usr/local/mysql/bin/디렉토리에 존재하는 mysqld_safe명령어를 백그라운드(&)로 실행하시면 됩니다.

 

명령어 위치 : /usr/local/mysql/bin/mysqld_safe


사용형식 : mysqld_safe  [각종옵션들]  &

 

 

MYSQL을 시작할 때에는 명령어의 끝부분에 “&”을 추가하여 백그라운드로 실행을 시켜야합니다.

 

분명히 아셔야하는 것은 mysqld_safe MYSQL을 실행하는 역할만을 하는 것입니다.  이 절의 내용을 보시면 아시겠지만 단순히 mysqld_safe으로 MYSQL을 실행하는 용도로만 사용되는 것이라면 설명은 매우 간단할 수 있을 것입니다하지만 mysqld_safe은 그렇게 단순한 것이 아닙니다.  이 절의 mysqld_safe 실무예들을 모두 확인하신 후에 필자의 이 말을 한번 생각해 보시기 바랍니다.  과연 mysqld_safe은 무엇을 하기위한 것인가를 말입니다.

 

 

 

2 : mysqld_safe으로 MYSQL 실행하기

 

앞의 예에서 설명드린 바와같이 MYSQL을 실행할 때에는 mysqld_safe명령어를 이용합니다아래의 예는 /usr/local/mysql/bin/디렉토리에 존재하는 mysqld_safe명령어를 이용하여 MYSQL을 백그라운드로 실행한 예입니다.

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysqld_safe &

[1] 3853

[root@file bin]# Starting mysqld daemon with databases from /usr/local/mysql/data

 

[root@file bin]#

 

그리고 다음은 실행되어있는 MYSQL 프로세스를 ps명령어로 확인한 것입니다.

 

[root@file bin]# ps -ef | grep mysqld

root      3853  2987  0 18:50 pts/1    00:00:00 /bin/sh ./mysqld_safe

mysql     3866  3853  2 18:50 pts/1    00:00:00 [mysqld]

root      3878  2987  0 18:50 pts/1    00:00:00 grep mysqld

[root@file bin]#

 

이 예는 가장 일반적이고 가장 많이 사용되는 MYSQL의 실행방법과 MYSQL의 실행 확인방법입니다.

 

 

 

 

3 : MYSQL 시작시 포트번호 지정하여 시작하기

 

MYSQL이 사용하는 기본 포트번호는 3306입니다그렇지만 꼭 이 포트번호를 사용해야하는 것은 아닙니다.  예를 들어 3306번 대신에 22222번을 사용할 수도 있습니다 1024번 이하의 포트번호는 시스템에서 사용하는 번호이기 때문에 1024번 이상의 포트번호중 사용되지 않는 번호를 임의대로 지정하여 사용하시면 됩니다.

 

아래의 예는 mysqld_safe으로 MYSQL을 시작시킬 때에 22222번 포트를 사용하여 실행한 것입니다.

 

[root@file bin]# ./mysqld_safe -P22222 &

[1] 3817

[root@file bin]# Starting mysqld daemon with databases from /usr/local/mysql/data
 

[root@file bin]#

 

이렇게 실행된 MYSQL 프로세스를 ps로 확인해 보시면 다음과 같이 나옵니다.

 

[root@file bin]# ps -ef | grep mysqld

root      4163  4113  0 22:11 pts/0    00:00:00 /bin/sh ./mysqld_safe -P22222

mysql     4179  4163  0 22:11 pts/0    00:00:00 [mysqld]

root      4190  4113  0 22:16 pts/0    00:00:00 grep mysqld

[root@file bin]#

 

, MYSQL의 실행시에 지정한 포트번호 22222 ps명령어로 확인해 볼 수 있다는 것입니다.

 

이와 같이 리눅스 서버의 보안이나 MYSQL자체 보안을 위하여 기본포트3306 대신에 다른 포트번호를 지정하여 사용할 수도 있다는 것을 알아보았습니다.

 

[참고사항]

mysqld_safe명령어로 MYSQL 실행시에 -P옵션으로 포트번호를 지정하여 실행할 수도 있지만 MYSQL 설치시에 기본 포트번호를 지정하여 설치하시면 실행시에 -P옵션없이 실행하여도 지정된 포트번호로 실행할 수 있습니다,  MYSQL설치단계의 ./configure실행시에 “--with-tcp-port=포트번호옵션에서 사용할 포트번호를 지정하여 설치하시면 됩니다.

 

 

 

 

4 :  MYSQL 실행시 grant table권한없이 실행하기

 

 

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

 

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

 

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

 

[root@file bin]# ./mysqld_safe --skip-grant-table &

[1] 3888

[root@file bin]# Starting mysqld daemon with databases from /usr/local/mysql/data

 

[root@file bin]#

 

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

 

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

 

[root@file bin]# ps -ef | grep mysqld

root   4262 4113  0 22:25 pts/0  00:00:00 /bin/sh ./mysqld_safe --skip-grant-table

mysql  4278  4262  0 22:25 pts/0    00:00:00 [mysqld]

root   4293  4113  0 22:30 pts/0    00:00:00 grep mysqld

[root@file bin]#

 

 

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

 

[root@file 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: 4.0.14

 

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

 

mysql>

mysql> exit

Bye

[root@file bin]#

 

 

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

 

[root@file bin]# ./mysql -u tempuser temp_db2

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: 4.0.14

 

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

 

mysql>

mysql> exit

Bye

[root@file bin]#

 

 

728x90
반응형
LIST