MySQL 多实例启动脚本

企业案例:开发mysql多实例启动脚本:
mysql多实例路径为:

[[email protected] ~]# ls -ld /data/3306/
drwxr-xr-x 3 mysql mysql 4096 Oct  9 13:28 /data/3306/

1)已知mysql多实例启动命令为:

mysql_safe --default-file=/data/3306/my.cnf &

2)停止命令为:

mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown


注:其实启动脚本可以更简化,当然作者本人展示的以谨慎的编写来展示脚本



MySQL多实例启动脚本展示:


[[email protected] ~]# cat /data/3306/mysql
#!/bin/sh
#kconfig:2345 13 15
#This is mysql start|stop|restart scripts.
#-------------------------------------
#Author:jason
#QQ:760966297
#mile:[email protected]
#-------------------------------------
[ -f /etc/init.d/functions ]&& . /etc/init.d/functions
Mysql_User=root
Mysql_Password=oldboy123
Mysql_Port=3306
Mysql_Path=/data/${Mysql_Port}
Mysql_Sock=/data/${Mysql_Port}/mysql.sock
Cmd_Path=/application/mysql/bin

fun_usage(){
        echo "USAGE $0:{start|stop|restart}"
                exit 1
}

fun_start(){
if [ -e $Mysql_Sock ];then
        action "MySQL is running." /bin/false
   else
        /bin/sh ${Cmd_Path}/mysqld_safe --defaults-file=$Mysql_Path/my.cnf  2>&1 >/dev/null & #Mysql start
        sleep 2
        netstat -lntup |grep 3306  >/dev/null  #acheck mysql process

   [ $? -eq 0 ]&&action "Mysql start successfully." /bin/true || action "Mysql startup failure." /bin/false
fi
}

fun_stop(){
if [ ! -e $Mysql_Sock  ];then
        action "MyySQL is not run." /bin/false
   exit 2
 else
        ${Cmd_Path}/mysqladmin -u${Mysql_User} -p${Mysql_Password} -S ${Mysql_Sock} shutdown
        netstat -lntup |grep 3306 >/dev/null
   [ $? -ne 0 ]&& action "Mysql stop is successfully." /bin/true || action "Mysql stop is failure." /bin/false
fi
}

fun_restart(){
        fun_stop
        sleep 2
        fun_start
        netstat -lntup |grep 3306  >/dev/null
         [ $? -eq 0 ]&& action "Mysql restart is successfully." /bin/true || action "Mysql restart is failure." /bin/false
exit 103
}

case $1 in
start)
        fun_start
        ;;
stop)
        fun_stop
        ;;
restart)
        fun_restart
        ;;
*)
          fun_usage
        ;;
esac

脚本测试:


[[email protected] ~]# /data/3306/mysql start
Mysql start successfully.                                  [  OK  ]
[[email protected] ~]# /data/3306/mysql stop
Mysql stop is successfully.                                [  OK  ]
[[email protected] ~]# /data/3306/mysql restart   #<==这里因为是在代码中定义了进程不存在就会提示
MyySQL is not run.                                         [FAILED]
[[email protected] ~]# /data/3306/mysql start
Mysql start successfully.                                  [  OK  ]
[[email protected] ~]# /data/3306/mysql restart
Mysql stop is successfully.                                [  OK  ]
Mysql start successfully.                                  [  OK  ]
Mysql restart is successfully.                             [  OK  ]

原文地址:http://blog.51cto.com/12643266/2298643

时间: 2025-01-06 01:04:48

MySQL 多实例启动脚本的相关文章

编写mysql多实例启动脚本

脚本原理: 启动MySQL动作: mysqld_safe来执行启动 停止MySQL动作: 使用mysqladmin来执行停止动作 重启的MySQL动作:    原理就是先停止,然后再启动 但是要注意:简单的sleep来等待停止和启动过程极可能出现在短时间内重复运行重启,mysqld_safe报错提示已经启动了一个实例的问题 这里可以参考MySQL提供的默认启动脚本mysqld.service中的wait_for_pid()这个函数. 以下是启动脚本,效果如图: 脚本: 1 #!/bin/sh 2

开发mysql单实例或多实例启动脚本

单实例 启动:mysqld_safe --user=mysql & 停止:mysqladmin -u root -proot shutdown 开发脚本 #!/bin/bash #chkconfig: 2345 30 50 #Date:2017-6-29 #Author:xcn([email protected]) #version Ultimates PID="/var/run/mysqld/mysqld.pid" user="root"       #定

Mysql基础的启动脚本

mysql安装目录(Window): 解析: 第一张图: 前面四个是mysql的驱动: 可以通过后缀知道我们用什么方式连接就需要安装什么驱动了:  例如:java   使用的是jdbc  需要连接conntor j 第五个和最后一个 主要是文档和案例: Workbench 是GUI: 现在市面上有很多GUI无所谓用什么   看个人爱好  我用的是sqlyog: mysqlservice:这里面是mysqlservice的核心部分: 第二张图(mysqlservice): my-default.i

MySQL单实例或多实例启动脚本

1.       [[email protected] scripts]# cat mysqld01.sh 2.       #!/bin/bash 3. 4.       . /etc/init.d/functions 5.       user=root 6.       pass=888888 7.       path="/application/mysql/bin" 8.       function usage(){ 9.           echo "Usag

02.利用Shell开发Redis多实例启动脚本

一.Redis部署情况 ## 软件部署情况 [[email protected] ~]# ls -ld /data/apps/redis <==目录本身及以下所有文件的属主/组为redis lrwxrwxrwx 1 root root 24 Oct 26 11:33 /data/apps/redis -> /data/apps/redis-4.0.14/ ## 实例部署情况 [[email protected] ~]# tree /data/redis/ <==目录本身及以下所有文件的属

一个简单的mysql服务检测启动脚本

目的: 监测mysql的存活状态,一旦监测到mysql down掉,重新启动mysql. 脚本内容: /usr/local/mysql/bin/mysqladmin -uroot -psharpower ping > /dev/null 2>&1 if [ $? -ne 0 ] then         /etc/init.d/mysql.server restart >/dev/null         echo "`/bin/date '+%Y%m%d %H:%M:

Redis多实例启动脚本

1,修改redis.conf 设置redis后台启动 daemonize yes 2,编写脚本 vi /etc/init.d/redis #!/bin/sh #chkconfig: 2345 10 90 #description: Startup and stop script for Redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT_1=6380 REDISPORT_2=6381 REDISPORT_3=6382 REDISPORT

mysql多实例安装脚本

#! /bin/bash # v.mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz # only install master mysql # time:2016-08-15 # pkg dir pkg_dir=`pwd` # mysql base dir data_dir="/data/mysql_root/mysql" base_dir="/usr/local/mysql" # create MySQL group and us

Mysql判断是否启动脚本

#!/bin/bash #By:sadoc.blog.51cto.com . /etc/rc.d/init.d/functions MYUSER=root MYPASS="123456" MYSOCK=/var/lib/mysql/mysql.sock MY_START="systemctl start mysqld.service" LOG_PATH=/tmp/mysql MY_PATH=/usr/bin/mysql DAYS=`date +%F` SECOND=