shell脚本部署mysql主从

centos6两台

Master IP:192.168.88.152

Slave IP:192.168.88.153

以下都是在主机上操作

两机配置免密登录

ssh-keygen -t rsa
ssh-copy-id [email protected]

编写mysql_master脚本

vim mysql_mster.sh

#!/bin/bash

service iptables stop
setenforce 0
yum -y install mysql mysql-server  #安装mysql服务 如果是centos7  安装命令 yum -y install mariadb mariadb-server
sed -ie '7a\server-id=1\nlog-bin=mysql-bin\nrelay-log\n' /etc/my.cnf  #修改中继日志
service mysqld restart #重启mysql服务
mysql -e "grant all on *.* to 'tom'@'%' identified by '123';"   #用户授权
mysql -e 'flush privileges;'  #刷新
mysql -e 'show master status;' #查看二进制

编写mysql_slave脚本

扫描二维码关注公众号,回复: 8049397 查看本文章
vim mysql_slave.sh
#!/bin/bash
bin=`ssh [email protected] "mysql -e 'show master status;'|grep mysql"`
file=`echo $bin|awk -F ' ' '{print $1}'`
pos=`echo $bin|awk -F ' ' '{print $2}'`
service iptables stop
setenforce 0
yum -y install mysql mysql-server
sed -ie '7a\server-id=2\nlog-bin=mysql-bin\nrelay-log\n' /etc/my.cnf
service mysqld start
mysql -e "change master to master_host='192.168.88.152',master_user='tom',master_password='123',master_log_file='$file',master_log_pos=$pos;"
mysql -e 'start slave'
mysql -e 'show slave status \G;'

 IO=`mysql -e "show slave status\G;" 2>/dev/null |grep Slave_IO_Running|awk -F ':' '{print $2}'`
 SQL=`mysql -e "show slave status\G;" 2>/dev/null |grep Slave_SQL_Running|awk -F ':' '{print $2}'`
 if [ $IO == "Yes" -a $SQL == "Yes" ]
 then
   echo "成功"
 else
   echo "失败"
 fi

将mysql_slave.sh复制到slave主机上

scp mysql_slave.sh 192.168.88.153:/root/

执行mysql_master.sh

sh mysql_master.sh

在master主机上远程执行mysql_slave脚本

ssh [email protected] "sh /root/mysql_slave.sh"

猜你喜欢

转载自www.cnblogs.com/tian01010/p/11971701.html