一、实验环境
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
################################################################
在mysql02上脚本内容,将上述过程反过来实现。