2009년 7월 10일 금요일

MySQL 기동과 정지 1

여러가지 기동방법

MySQL를 기동하는 방법은 여러가지 방법이 준비되어있다.
MySQL5.0부터는 mysqlmanager라는 툴도 추가되었다.

MySQL기동방법
operator ---> mysql.server(init 스크립트) ---> mysqld_safe---> mysqld
operator ---> mysql.server(init 스크립트) ---> mysqlmanager --->(1...N) mysqld
operator --->(1...N)mysql_safe ---> mysqld
operator --->(1...N)mysqld
operator ---> mysqlmanager --->(1...N) mysqld
operator ---> mysqld_multi --->(1...N) mysql_safe --->mysqld
operator ---> mysqld_multi --->(1...N) mysqld

1...N의 의미는 1개이상의 커맨드를 실행가능하다는 것을 의미한다.
예를 들어 mysqlmanager에서 mysqld로의 화살표는 mysqlmanager1개가 mysqld를 1개 이상 기동가능하다는 말이 된다.

이처럼 기동방법은 많지만 결국 어떤식으로 mysqld를 기동시키느냐라는 것만 다르다.

보통 mysqld를 직접 기동시키는 것보다 다른 스크립트나 명령어를 이용해서 mysqld를 기동시키는게 많은 것이다.

mysql.server는 init스크립트이어서 OS기동시에 MySQL를 자동으로 시동시키고 싶은 경우 사용된다.
이때 OS 기동시에 한번 실행되는 것뿐이다. 물론 관리자가 수동으로 실행해도 상관없다.

이 mysql.server스크립트는 mysqld_safe나 mysqlmanager를 기동한후 자신은 종료한다.

mysqld_safe는 mysqld가 죽었을 경우에 자동으로 mysqld를 시동시키는 쉘 스크립트이다.
한번 올라오면 계속 상주한다.

mysqld_multi는 mysqld_safe 또는 여러개의 mysqld를 기동하거나 정지하거나 하는 Perl스크립트이다. 이것은 단순한 명령어로 데몬처럼 상주하지 않는다.

mysqlmanager는 mysqld_multi와 mysql_safe의 장점을 합하고 리모트 머신에서도 서버 기동, 정지 조작가능하도록 개량된 우수한 녀석이다.

오퍼레이터(유저)는 상황이나 용도에 맞게 어떤 방법이라도 MySQL서버를 기동할 수 있게 된다.

Unix계열의 경우 mysqld, mydqld_safe, mysqlmanger, mysql.server, mysqld_multi등 각 프로세스 실행계정은 이것들의 커맨드를 기동한 계정이 되게 된다.