mac 在本地安装了mysql,本地服务每次启动前还要手动去执行mysql.server start,麻烦,写个脚本实现开机自启动
mysql服务目录
~ which mysql
/usr/local/bin/mysql
mysql.server 也在该目录
/usr/local/bin/mysql.server
基本命令
mysql.server 支持的命令
{start|stop|restart|reload|force-reload|status}
- mysql.server start 启动
- mysql.server stop 停止
- mysql.server restart 重启
- mysql.server reload 重新加载my.conf配置
- mysql.server force-reload 强制重新加载配置
- mysql.server status 当前运行状态
reload与restart区别
reload 会给MySQL进程发送一个 SIGHUP 信号,MySQL 接下来会重新加载权限表、配置文件,重新打开日志文件,重新打开host解析缓存和连接池(thread cache)。
restart 则会发送 SIGTERM,使MySQL关闭。关闭后,重新启动 MySQL。
脚本实现
创建脚本文件
# 创建脚本文件并添加可执行权限
touch mysqlStarter.sh
chmod a+x mysqlStarter.sh
脚本内容
#!/bin/bash
execute()
{
action=$1
exec mysql.server $action
}
print_help()
{
echo "samples: {start|stop|restart|reload|force-reload|status} "
echo "------------------ start stop ---------------------------------"
echo "mysqlStarter.sh start : mysql.server start "
echo "mysqlStarter.sh stop : mysql.server stop "
echo "mysqlStarter.sh restart : mysql.server restart "
echo "mysqlStarter.sh status : mysql.server status "
echo "------------------ reload config ------------------------------"
echo "mysqlStarter.sh reload : mysql.server reload "
echo "mysqlStarter.sh force-reload : mysql.server force-reload "
echo "---------------------------------------------------------------"
}
Main()
{
echo 'your input string ===>>> '$@
if [ "$1" == "-h" -o "$1" == "--help" -o "$1" == "-help" ]; then
print_help
elif [ "$1" == "start" ]; then
execute "start"
elif [ "$1" == "stop" ];then
execute "stop"
elif [ "$1" == "restart" ];then
execute "restart"
elif [ "$1" == "reload" ];then
execute "reload"
elif [ "$1" == "force-reload" ];then
execute "force-reload"
elif [ "$1" == "status" ];then
execute "status"
else
echo 'now execute ===>>> start'
execute "start"
fi
exit 0
}
Main $@
添加开机启动
创建 automator 应用程序
选择 “运行shell脚本”
cd ~
open -g -a Terminal.app mysqlStarter.sh
重启验证