linux mysql交互模式,【MySQL+expect】非交互式建立数据库主从

一、实验环境

mysql01    xx.xx.xx.xx

mysql02    xx.xx.xx.xx

二、软件安装

# yum  -y install expect

三、脚本内容

在mysql01

################################################################

#!/bin/bash

parent_path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )

cd "$parent_path"

# set variables

mysql01_ip=""

mysql01_root_passwd=""

mysq01_os_passwd=""

mysql02_ip=""

mysql02_root_passwd=""

mysq02_os_passwd=""

# SSH login expect shell script to supply username and password

rm -f  ~/.ssh/id_rsa

rm -f  ~/.ssh/id_rsa.pub

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

expect -c "

set timeout 100

spawn ssh-copy-id root@${mysql02_ip}

expect {

*yes/no* {send "yes"\r;exp_continue;}

*assword* {send "${mysq02_os_passwd}"\r;}

}

expect -re \](\$|#)

exit

"

master_log_file=`ssh root@${mysql02_ip}   "mysql -uroot -p${mysql02_root_passwd}  --execute='show master status;'"|awk '{print $1}'|sed -n '2p'`

master_log_pos=`ssh  root@${mysql02_ip}   "mysql -uroot -p${mysql02_root_passwd}  --execute='show master status;'"|awk '{print $2}'|sed -n '2p'`

mysql -uroot -p"{mysql01_root_passwd}" </dev/null

change master to master_host='${mysql02_ip}',master_user='repl',master_password='Repl@123',master_log_file='${master_log_file}',master_log_pos='${master_log_pos}';

quit

EOF

mysql -uroot -p"${mysql01_root_passwd}" </dev/null

start slave;

quit

EOF

################################################################

1455fc72e82d

在mysql02上脚本内容,将上述过程反过来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值