开发MySQL专业启动脚本
1、MySQL启动原理
1.1 已知mysql多实例启动命令为:
/application/mysql/bin/mysqld_safe --default-file=/data/3306/my.cnf &
###命令路径是编译安装时的路径
1.2 mysql多实例停止命令为:
/application/mysql/bin/mysqladmin -uroot -p123 -S /data/3306/mysql.sock shutdown
###命令路径是编译安装时的路径
使用函数、case语句、if语句等实现。
2、编写脚本
2.1 编写启动、停止脚本
[root@web02 oldboy20160103]# cat oldboy09_01.sh
#!/bin/sh
[ -f /etc/init.d/functions ] && source/etc/init.d/functions
BAKPath=/server/backup
MYUSER=root
MYPASS=123
SOCKET=/data/3306/mysql.sock
MYCMD="mysql -u$MYUSER -p$MYPASS -S$SOCKET"
MYADMIN="/application/mysql/bin/mysqladmin-uroot -p123 -S /data/3306/mysql.sock"
judge(){
RETVAL=$?
sleep 2
if [$RETVAL -eq 0 ];then
action"$1 mysql" /bin/true
else
action"$1 mysql" /bin/true
fi
return$RETVAL
}
start(){
/application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf2>&1 > /dev/null &
judge start
}
stop(){
$MYADMINshutdown 2>&1 > /dev/null
judge stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo${USAGE:$0{start|stop|restart}}
exit$RETVAL
esac
2.2 启动mysql服务脚本
[root@web02 oldboy20160103]# netstat -lunpt |grep33
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 15027/mysqld
[root@web02 oldboy20160103]# /data/3306/my start
start mysql [ OK ]
[root@web02 oldboy20160103]# netstat -lunpt |grep33
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 38464/mysqld
tcp 0 00.0.0.0:3307 0.0.0.0:* LISTEN 15027/mysqld
[root@web02 oldboy20160103]#
2.3 停止mysql服务脚本
[root@web02 oldboy20160103]# /data/3306/my stop
stop mysql [ OK ]
[root@web02 oldboy20160103]# netstat -lunpt |grep33
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 15027/mysqld
2.4 重启mysql服务脚本
[root@web02 oldboy20160103]# /data/3306/my start
start mysql [ OK ]
[root@web02 oldboy20160103]# /data/3306/my restart
stop mysql [ OK ]
start mysql [ OK ]
[root@web02 oldboy20160103]# netstat -lunpt |grep33
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 39990/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 15027/mysqld
以上命令仅供参考:如有好的方法、不足可以一起交流。O(∩_∩)O~~