# 主从复制账号grant replication slave on *.* to 'repl_user'@'172.17.%.%' identified by 'soulchild_repl';# 管理员账号grant all on *.* to 'root'@'172.17.%.%' identified by 'soulchild';
五、开启主从同步
1.查看master bin-log位置
2.修改slave为从节点
1
2
3
4
5
6
7
8
9
10
# mysql02mysql> change master to master_host='172.17.20.240',master_user='repl_user',master_password='soulchild_repl',master_log_file='mysql-bin.000002',master_log_pos=740;mysql> start slave;# mysql03mysql> change master to master_host='172.17.20.240',master_user='repl_user',master_password='soulchild_repl',master_log_file='mysql-bin.000002',master_log_pos=740;mysql> start slave;
#!/usr/bin/env perl
use strict;use warnings FATAL=> 'all';use Getopt::Long;use MHA::DBHelper;my ($command, $ssh_user, $orig_master_host,
$orig_master_ip, $orig_master_port, $new_master_host,
$new_master_ip, $new_master_port, $new_master_user,
$new_master_password);my $vip='172.17.20.243/24';my $key="1";my $ssh_start_vip="/sbin/ifconfig eth0:$key$vip";my $ssh_stop_vip="/sbin/ifconfig eth0:$key down";GetOptions('command=s'=> \$command,
'ssh_user=s'=> \$ssh_user,
'orig_master_host=s'=> \$orig_master_host,
'orig_master_ip=s'=> \$orig_master_ip,
'orig_master_port=i'=> \$orig_master_port,
'new_master_host=s'=> \$new_master_host,
'new_master_ip=s'=> \$new_master_ip,
'new_master_port=i'=> \$new_master_port,
'new_master_user=s'=> \$new_master_user,
'new_master_password=s'=> \$new_master_password,
);exit&main();sub main {if($command eq "stop"||$command eq "stopssh"){# $orig_master_host, $orig_master_ip, $orig_master_port are passed.# If you manage master ip address at global catalog database,# invalidate orig_master_ip here. my $exit_code= 1;eval{# updating global catalog, etc$exit_code= 0;};if($@){ warn "Got Error: $@\n";exit$exit_code;}exit$exit_code;} elsif ($command eq "start"){# all arguments are passed.# If you manage master ip address at global catalog database,# activate new_master_ip here.# You can also grant write access (create user, set read_only=0, etc) here. my $exit_code= 10;eval{ print "Enabling the VIP - $vip on the new master - $new_master_host \n";&start_vip();&stop_vip();$exit_code= 0;};if($@){ warn $@;exit$exit_code;}exit$exit_code;} elsif ($command eq "status"){ print "Checking the Status of the script.. OK \n";`ssh $ssh_user\@$orig_master_host\"$ssh_start_vip\"`;exit 0;}else{&usage();exit 1;}}sub start_vip(){`ssh $ssh_user\@$new_master_host\"$ssh_start_vip\"`;}# A simple system call that disable the VIP on the old_master sub stop_vip(){`ssh $ssh_user\@$orig_master_host\"$ssh_stop_vip\"`;}sub usage { print
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";}