【MySQL启动脚本】古人学问无遗力,少壮工夫老始成。这篇文章主要讲述MySQL启动脚本相关的知识,希望能为你提供帮助。
#!/bin/bash
# chkconfig: 2345 64 36 #配置系统自启动
# description: A very fast and reliable SQL database engine.
##############################################################
# File Name: mysqld
# Version: V1.0
# Author: yy
##############################################################
#引入系统函数库
. /etc/init.d/functions
#基础路径定义
basedir=/application/mysql
bindir=/application/mysql/bin
lockdir=/var/lock/subsys
lock_file_path="$lockdir/mysql"
mysqld_pid_file_path=$basedir/data/`uname -n`.pid
#成功提示函数
log_success_msg()
#action为特殊的提示函数,$@为所有参数。
action "SUCCESS! $@" /bin/true
#失败提示函数
log_failure_msg()
action"ERROR! $@" /bin/false
#mysql启动函数
start()
echo $"Starting MySQL"
#测试mysqld_safe是否可执行
if test -x $bindir/mysqld_safe
then
#后台执行启动mysql命令
$bindir/mysqld_safe & > /dev/null &
#获取返回值
retval=$?
#判断返回值是否为0
if [ $retval -eq 0 ]
then
#调用成功提示函数。
log_success_msg "mysql Startup"
if test -w "$lockdir" #判断锁目录是否可写。
then
touch "$lock_file_path" #创建锁文件。
fi
return $retval #给返回值是专业的表现。
else
log_failure_msg "MySQL Startup" #调用失败函数提示。
return $retval
fi
else
log_failure_msg "Couldnt find MySQL server ($bindir/mysqld_safe)"
fi
#停止MySQL函数。
stop()
#判断mysql pid file大小是否为0。
if test -s "$mysqld_pid_file_path"
then
#读取pidfile
mysqld_pid=`cat "$mysqld_pid_file_path"`
#判断mysql pid对应的进程是否存在。
if (kill -0 $mysqld_pid 2> /dev/null)
then
echo $"Shutting down MySQL"
kill $mysqld_pid #停止MySQL命令。
retval=$?
if [ $retval -eq 0 ]
then
log_success_msg "MySQL Stop" #调用停止成功函数。
if test -f "$lock_file_path"
then
rm -f "$lock_file_path"#删除锁文件。
fi
return $retval
else
log_failure_msg "MySQL Stop."
return $retval
fi
else
log_failure_msg "MySQL server process mysqld_pid is not running!"
rm "$mysqld_pid_file_path"
fi
else
log_failure_msg "MySQL server PID file is null or not exist!"
fi
#接收传参判断并执行相应函数。
case "$1" in
start)
start
retval=$?
; ;
stop)
stop
retval=$?
; ;
restart)
stop
sleep 2
start
retval=$?
; ;
*)
echo $"Usage:$0 start|stop|restart"
exit 2
esac
exit $retval#执行脚本后,有返回值。
推荐阅读
- #yyds干货盘点#Linux网络配置故障排除命令
- 模拟逻辑卷扩容
- #yyds干货盘点#解决 bash: telnet: command not found 问题
- 应用运维工程师基础能力总结
- Linux基础操作(如何在 Linux 中复制文件夹())
- Apache优化相关#yyds干货盘点#
- Linux系统数据备份不再头疼,Rdiff-backup来帮忙!
- Linux 示例中的 apt 命令大全,建议收藏!
- #私藏项目实操分享# Ngnix--day01