MySQL运维-3,多实例控制脚本的编写与使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL运维-3,多实例控制脚本的编写与使用相关的知识,希望对你有一定的参考价值。

实验环境
此文章在《mysql运维-2,多实例部署》后,所用环境也是上一篇实验部署成功后的实验环境。

使用方法
1,编写脚本,命名为mysqld,让其有执行权限
2,拷贝mysqld到不同实例的目录中

[]# tree -L 2 /data/

/data/
├── 3306
│?? ├── dbfile
│?? ├── my.cnf
│?? └── mysqld
└── 3307
├── dbfile
├── my.cnf
└── mysqld

3,修改mysqld中的端口,让其与所属实例相同
4,带参数执行

[]# /data/3306/mysqld start
MySQL is starting...
[]# /data/3306/mysqld stop
MySQL is stopping...

5,脚本写入/etc/rc/local,使其开启自动运行

[]# vim /etc/rc.local

/data/3306/mysqld start
/data/3307/mysqld start

脚本内容

[]# vim /data/3306/mysqld
#/bin/sh

m_user=‘root‘                         //定义使用哪个用户控制MySQL
m_password=‘1qaz3edc‘       //定义控制MySQL的用户密码
m_port=‘3306‘                        //定义MySQL的端口号,用于区分是哪个实例,主要修改此变量
m_cmddir=‘/app/mysql/bin‘    //定义MySQL的环境目录
#start_function                       //定义启动MySQL的函数
function_mysql_start()
{
if [ -e /data/${m_port}/mysql.sock ];then
printf ‘MySQL is running...
‘
exit 1
else
printf ‘MySQL is starting...
‘
${m_cmddir}/mysqld_safe --defaults-file=/data/${m_port}/my.cnf 2>&1 >/dev/null &        //核心命令,启动MySQL
//注意gt;是大于号,51cto无法正常显示大于号。
fi
}
#stop_function                       //定义关闭MySQL的函数
function_mysql_stop()
{
if [ -e /data/${m_port}/mysql.sock ];then
printf ‘MySQL is stopping...
‘
${m_cmddir}/mysqladmin -S /data/${m_port}/mysql.sock -u${m_user} -p${m_password} shutdown                   //核心命令,关闭MySQL
else
printf "MySQL is stoped...
"
exit 1
fi
}
#do it                                      //针对不同的参数,引用不同的函数。
case $1 in
start)
function_mysql_start
;;
stop)
function_mysql_stop
;;
*)
printf "arguments is error,please enter start or stop。"
;;
esac

以上是关于MySQL运维-3,多实例控制脚本的编写与使用的主要内容,如果未能解决你的问题,请参考以下文章

linux运维架构之路-MySQL多实例

CentOS7.5源码shell脚本自动安装MySQL5.7.28多实例

MySQL运维-多实例部署

运维工程师必须掌握的shell技术实战内容

Mysql DBA 高级运维学习笔记-MySQL数据库多实例介绍

centos 安装多实例数据库