1
2
3
4
5
|
[manager,master,slave1,slave2] shell>
yum update shell>
yum -y install perl-DBD-MySQL
ncftp shell>
wget http: //mysql-master-ha .googlecode.com /files/mha4mysql-node-0 .53-0.noarch.rpm sehll>
rpm -ivh mha4mysql-node-0.53-0.noarch.rpm |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[manager] shell>
yum install perl shell>
yum install cpan shell>
rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm error: perl(Config::Tiny)
is needed by mha4mysql-manager-0.53-0.noarch perl(Log::Dispatch)
is needed by mha4mysql-manager-0.53-0.noarch perl(Log::Dispatch::File)
is needed by mha4mysql-manager-0.53-0.noarch perl(Log::Dispatch::Screen)
is needed by mha4mysql-manager-0.53-0.noarch perl(Parallel::ForkManager)
is needed by mha4mysql-manager-0.53-0.noarch perl(Time::HiRes)
is needed by mha4mysql-manager-0.53-0.noarch [solution] shell>
wget ftp : //ftp .muug.mb.ca /mirror/centos/5 .10 /os/x86_64/CentOS/perl-5 .8.8-41.el5.x86_64.rpm shell>
wget ftp : //ftp .muug.mb.ca /mirror/centos/6 .5 /os/x86_64/Packages/compat-db43-4 .3.29-15.el6.x86_64.rpm shell>
wget http: //downloads .naulinux.ru /pub/NauLinux/6x/i386/sites/School/RPMS/perl-Log-Dispatch-2 .27-1.el6.noarch.rpm shell>
wget http: //dl .fedoraproject.org /pub/epel/6/i386/perl-Parallel-ForkManager-0 .7.9-1.el6.noarch.rpm shell>
wget http: //dl .fedoraproject.org /pub/epel/6/i386/perl-Mail-Sender-0 .8.16-3.el6.noarch.rpm shell>
wget http: //dl .fedoraproject.org /pub/epel/6/i386/perl-Mail-Sendmail-0 .79-12.el6.noarch.rpm shell>
wget http: //mirror .centos.org /centos/6/os/x86_64/Packages/perl-Time-HiRes-1 .9721-136.el6.x86_64.rpm shell>
rpm -ivh perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm perl-Log-Dispatch-2.27-1.el6.noarch.rpm perl-Mail-Sender-0.8.16-3.el6.noarch.rpm perl-Mail-Sendmail-0.79-12.el6.noarch.rpm perl-Time-HiRes-1.9721-136.el6.x86_64.rpm shell>
rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[master:156] 1.shell>
vim /etc/my .cnf #server-id
改为1 server- id =1 log-bin=mysql-bin binlog_format=mixed #授权操作 2.mysql>
GRANT ALL PRIVILEGES ON *.* TO ‘rep‘ @ ‘10.10.54.%‘ IDENTIFIED
BY ‘rep123‘ ; mysql>
flush privileges; 3.mysql>
show master status; [slave1,slave2] 4.change
master操作 mysql>
change master to master_host= ‘10.10.54.156‘ , master_port=3306, master_user= ‘rep‘ , master_password= ‘rep123‘ , master_log_file= ‘mysql-bin.000001‘ , master_log_pos=112; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[server
default] user=mha_rep ##mysql管理用戶名 password=123456 manager_workdir= /masterha/app1 #目录可以任意指定 manager_log= /masterha/app1/manager .log remote_workdir= /masterha/app1 ssh_user=root #ssh免密钥登录的帐号名 repl_user=rep #mysql复制帐号,用来在主从机之间同步二进制日志等 repl_password=rep123 ping_interval=1 #ping间隔时间,用来检测master是否正常 [server1] hostname =10.10.54.155 #ssh_port=9999 master_binlog_dir= /data/ndb #mysql数据库目录 candidate_master=1 #master机宕掉后,优先启用这台作为新master [server2] hostname =10.10.54.156 #ssh_port=9999 master_binlog_dir= /data/ndb candidate_master=1 [server3] hostname =10.10.54.157 #ssh_port=9999 master_binlog_dir= /data/ndb no_master=1 #设置no_master=1使主机不能成为新master |
1
2
3
4
|
[manager:154] shell>
masterha_check_ssh --conf= /etc/masterha/app1 .cnf Sun
Mar 2 17:45:38 2014 - [debug] ok. Sun
Mar 2 17:45:38 2014 - [info] All SSH connection tests passed successfully. |
1
2
3
4
5
6
7
8
9
10
11
|
[manager:154] shell>
masterha_check_repl --conf= /etc/masterha/app1 .cnf --------------------------------------------------------- Sun
Mar 2 13:16:57 2014 - [info] Slaves settings check done . Sun
Mar 2 13:16:57 2014 - [info] 10.10.54.156
(current master) +--10.10.54.155 +--10.10.54.157 ... MySQL
Replication Health is OK. --------------------------------------------------------------- |
1
2
3
4
5
6
7
8
9
10
|
[manager:154] shell> nohup masterha_manager
--conf= /etc/masterha/app1 .cnf
> /tmp/mha_manager .log
2>&1 shell> tail -f /masterha/app1/manager .log --------------------------------------------------------------- 10.10.54.156
(current master) +--10.10.54.155 +--10.10.54.157 ... Sun
Mar 2 13:09:25 2014 - [info] Ping(SELECT) succeeded, waiting until MySQL
doesn‘t respond.. ----------------------------------------------------------------- |
1
|
$msg
= "" unless($msg); |
Mysql高可用架构MHA搭建及测试故障转移,布布扣,bubuko.com
原文:http://blog.csdn.net/enweitech/article/details/23768409