设置开机启动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
小结:
这里介绍一个配置流程,所编写的脚本不具有健壮性!需要进一步修改,切勿使用在生产环境!!