码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2020-04-04 20:37:40      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:变量   启动   修改   拷贝   写入   区分   run   soc   null   

实验环境
此文章在《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...\n‘
exit 1
else
printf ‘MySQL is starting...\n‘
${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...\n‘
${m_cmddir}/mysqladmin -S /data/${m_port}/mysql.sock -u${m_user} -p${m_password} shutdown                   //核心命令,关闭MySQL
else
printf "MySQL is stoped...\n"
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,多实例控制脚本的编写与使用

标签:变量   启动   修改   拷贝   写入   区分   run   soc   null   

原文地址:https://blog.51cto.com/yuanshuai/2484845

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!