Unix계열에서 mysqld기동과 정지
1. mysqld를 쉘에서 직접기동
mysqld를 쉘에서 직접기동하는 방법은 다음과 같이 조작한다.
일반 계정에서 직접기동
shell$ mysqld &
그렇지만 mysqld는 root계정으로 기동되면 곧바로 종료하게 된다. 이것은 시큐리티 대책이다.
root계정으로 mysqld를 기동하는 경우에는 다음처럼 mysqld를 실행하는 계정을 지정해서 기동한다.
mysqld를 실행하는 계정을 지정한 기동
root@shell# mysqld –user=mysql &
–user옵션은 my.cnf의 [mysqld]그룹에서 기술가능하다.
2. mysqld_safe를 사용해서 기동
mysqld_safe스크립트는 내부에서 mysqld를 기동한다. 따라서 만약 root계정으로 mysqld_safe를 실행하는 경우는 myqld에 –user옵션을 지정하던지 mysqld_safe에 –user옵셥을 지정할 필요가 있다.
좀더 편하게 하려면 my.cnf의 [mysqld]그룹이던지 [mysqld_safe]그룹에 user옵션을 써넣는다.
mysqld_safe스크립트는 기동하면 상주하면서 mysqld프로세스를 감시한다.
무언가의 장해로 mysqld가 정지한 경우 다시 자동으로 mysqld를 기동한다.
mysqld_safe를 기동(root계정 사용시)
root@shell# mysqld_safe –user=mysql &
3. mysql.server를 사용해서 기동
mysql.server 스크립트는 내부에서 mysqld_safe를 기동한다. 다음처럼 조작한다.
mysql.server를 사용해서 기동
shell$ /user/local/mysql/support-files/mysql.server start
4. mysqld의 정지
기동과 마찬가지로 mysqld정지 방법도 몇개가 준비되어있다.
#mysql.server를 사용해서 정지
mysql.server스크립트를 사용해서 정지가능하다.
mysql.server를 사용해서 정지
shell$ /usr/local/mysql/support-files/mysql.server stop
#mysqladmin을 사용해서 정지
mysqladmin을 사용해서 정지하는 경우는 다음과 같이 조작한다.
mysqladmin을 사용해서 정지
shell$ mysqladmin -uroot shutdown
#kill을 사용해서 정지
kill명령어를 사용해서 정지하는 것이 가능하다. SIGTERM 시그널을 사용해서 MySQL은 안전하게 정지한다.
kill명령어를 사용해서 정지
shell$ kill `cat /usr/local/mysql/data/host.pid`
만약, mysql_safe를 이용해서 mysqld를 기동했을 경우에 최초에 mysqld_safe를 kill 명령어로 정지하고 그 다음에 mysqld를 정지한다.
그렇게 하지 않으면 mysqld_safe가 mysqld를 재기동해 버린다.
또 mysqlmanager로 mysqld를 기동했을 경우에 kill 명령어로 mysqld를 직접 정지시키면 mysqld가 재기동한다.
따라서 먼저 mysqldmanager를 정지시킬 필요가 있다.
kill 명령어를 사용하는 경우 kill -9나 kill -KILL은 절대 사용하지 않도록 해야한다.
이 조작으로 정지시키면 버퍼에 남아있던 데이터가 처리되지않은 상태로 mysqld가 정지하는 꼴이 되기 때문이다. 트랜잭션 버퍼나 INSERT DELAYED버퍼등이 영향을 받는다.