mysql主从脚本_shell脚本部署mysql主从

centos6两台

Master IP:192.168.88.152

Slave IP:192.168.88.153

以下都是在主机上操作

两机配置免密登录

ssh-keygen -t rsa

ssh-copy-id root@192.168.88.153

编写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=mysql-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脚本

vim mysql_slave.sh#!/bin/bash

bin=`ssh root@192.168.88.152 "mysql -e 'show master status;'|grep mysql"`

file=`echo $bin|awk -F ' ' '{print $1}'`

pos=`echo $bin|awk -F ' ' '{print $2}'`

service iptables stop

setenforce0yum-y install mysql mysql-server

sed-ie '7a\server-id=2\nlog-bin=mysql-bin\nrelay-log=mysql-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 root@192.168.88.153 "sh /root/mysql_slave.sh"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 MySQL 主从状态检查的 shell 脚本: ```bash #!/bin/bash # MySQL 主服务器信息 MASTER_HOST="master.example.com" MASTER_USER="root" MASTER_PASS="password" # MySQL 从服务器信息 SLAVE_HOST="slave.example.com" SLAVE_USER="root" SLAVE_PASS="password" # 检查主服务器状态 MASTER_STATUS=$(mysql -h $MASTER_HOST -u $MASTER_USER -p$MASTER_PASS -e "SHOW MASTER STATUS") MASTER_LOG_FILE=$(echo $MASTER_STATUS | awk '{print $1}') MASTER_LOG_POS=$(echo $MASTER_STATUS | awk '{print $2}') # 检查从服务器状态 SLAVE_STATUS=$(mysql -h $SLAVE_HOST -u $SLAVE_USER -p$SLAVE_PASS -e "SHOW SLAVE STATUS\G") SLAVE_IO_RUNNING=$(echo $SLAVE_STATUS | grep "Slave_IO_Running" | awk '{print $2}') SLAVE_SQL_RUNNING=$(echo $SLAVE_STATUS | grep "Slave_SQL_Running" | awk '{print $2}') SLAVE_IO_ERROR=$(echo $SLAVE_STATUS | grep "Last_IO_Error" | awk '{print $2}') SLAVE_SQL_ERROR=$(echo $SLAVE_STATUS | grep "Last_SQL_Error" | awk '{print $2}') # 检查主从同步状态 if [ "$SLAVE_IO_RUNNING" == "Yes" ] && [ "$SLAVE_SQL_RUNNING" == "Yes" ]; then echo "Replication is running. Master log file: $MASTER_LOG_FILE, position: $MASTER_LOG_POS" else echo "Replication is not running." echo "Slave_IO_Running: $SLAVE_IO_RUNNING" echo "Slave_SQL_Running: $SLAVE_SQL_RUNNING" echo "Last_IO_Error: $SLAVE_IO_ERROR" echo "Last_SQL_Error: $SLAVE_SQL_ERROR" fi ``` 该脚本会连接到主服务器和从服务器,分别检查它们的状态。如果主从同步正常运行,则会输出主服务器的日志文件和位置。如果主从同步出现问题,则会输出相关错误信息。请注意,这只是一个简单的示例脚本,您可能需要根据自己的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值