【MySql】開機自動啟動mysql服務

楊奇龍發表於2011-12-30
設定開機啟動mysql
作為伺服器使用的linux 會執行/etc/rc.d/rc3.d 目錄下的所有指令碼
[root@rac4 rc3.d]# ll S*
lrwxrwxrwx 1 root root 23 09-08 03:15 S00microcode_ctl -> ../init.d/microcode_ctl
lrwxrwxrwx 1 root root 22 09-08 03:14 S02lvm2-monitor -> ../init.d/lvm2-monitor
....省略....
lrwxrwxrwx 1 root root 11 09-08 03:14 S99local -> ../rc.local
lrwxrwxrwx 1 root root 21 09-08 03:18 S99modclusterd -> ../init.d/modclusterd
lrwxrwxrwx 1 root root 15 09-08 03:18 S99ricci -> ../init.d/ricci
lrwxrwxrwx 1 root root 16 09-08 03:15 S99smartd -> ../init.d/smartd
[root@rac4 rc3.d]# 
首先了解一下在rc3.d下面的指令碼的執行規則:
1 如果以字母S開頭,執行時Linux會給它傳遞一個start引數;
2 如果以字母K開頭,則會傳遞stop引數;
3 字母后面的數字,表示這個指令碼的啟動順序;
知道了基本原理,接下來就是

1 編寫指令碼
cat automysql.sh 
#!/bin/bash
#created by yangql @2011-12-30 
#for auto start mysql service 
case "$1" in
'start')
/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf &
;;
'stop')
/usr/bin/mysqladmin -uroot  -h127.0.0.1 -P3306 shutdown
;;
'restart')
/usr/bin/mysqladmin -uroot  -h127.0.0.1 -P3306 shutdown
/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf &
;;
esac
exit 0

2 賦予許可權
chmod 755 automysql.sh

3 將指令碼設定為軟連結,這樣便於維護,啟動和關閉只需要一個 automysql.sh 指令碼就可以了!
[root@rac4 rc3.d]# ln -s /etc/init.d/automysql.sh  /etc/rc.d/rc3.d/S64mysql
[root@rac4 rc3.d]# ln -s /etc/init.d/automysql.sh  /etc/rc.d/rc3.d/K20mysql

4 測試:
[root@rac4 rc3.d]# reboot
Broadcast message from root (pts/1) (Fri Dec 30 20:01:03 2011):
The system is going down for reboot NOW!
[root@rac4 rc3.d]# 
Last login: Fri Dec 30 19:44:18 2011 from 10.13.90.1
[root@rac4 ~]# service mysql status
MySQL running (3138)                                       [確定]

5 如果一個伺服器上有多個埠對應的mysql資料庫服務,可以這樣寫:
#! /bin/bash

case "$1" in
'start')
/usr/bin/mysqld_safe --defaults-file=/etc/my3301.cnf &
/usr/bin/mysqld_safe --defaults-file=/etc/my3302.cnf &
/usr/bin/mysqld_safe --defaults-file=/etc/my5001.cnf &
/usr/bin/mysqld_safe --defaults-file=/etc/my5002.cnf &
;;
'stop')
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P3301 shutdown
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P3302 shutdown
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P5001 shutdown
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P5002 shutdown
;;
'restart')
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P3301 shutdown
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P3302 shutdown
/usr/bin/mysqld_safe --defaults-file=/etc/my3301.cnf &
/usr/bin/mysqld_safe --defaults-file=/etc/my3302.cnf &

/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P5001 shutdown
/usr/bin/mysqladmin -uroot -p123456  -h127.0.0.1 -P5002 shutdown
/usr/bin/mysqld_safe --defaults-file=/etc/my5001.cnf &
/usr/bin/mysqld_safe --defaults-file=/etc/my5002.cnf &

;;
esac
exit 0
小結:
 這裡介紹一個配置流程,所編寫的指令碼不具有健壯性!需要進一步修改,切勿使用在生產環境!!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-714277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章