https://code.google.com/p/mysql-master-ha/
一.環境介紹
1.主機部署
manager機:10.10.54.154
master機:10.10.54.156
slave1機:10.10.54.155(備用master)
slave2機:10.10.54.157
2.大致步驟
A.首先用ssh-keygen實現四臺主機之間相互免密鑰登錄
B.安裝MHAmha4mysql-node,mha4mysql-manager 軟件包
C.建立master,slave1,slave2之間主從復制
D.管理機manager上配置MHA文件
E.masterha_check_ssh工具驗證ssh信任登錄是否成功
F.masterha_check_repl工具驗證mysql復制是否成功
G.啟動MHA manager,并監控日志文件
H.測試master(156)宕機后,是否會自動切換
3.說明:下面中括號中的主機名說明了當前操作是在哪臺機子上進行的
二.首先用ssh-keygen實現四臺主機之間相互免密鑰登錄
[manager機]
shell> ssh-keygen -t rsa -b 2048
shell> scp-copy-id root@10.10.54.155
shell> scp-copy-id root@10.10.54.156
shell> scp-copy-id root@10.10.54.157
在另外三臺機子重復此步驟,使四臺機子中的任何兩臺之間可以免密碼登錄
三.安裝MHAmha4mysql-node,mha4mysql-manager 軟件包
1.四臺主機上安裝MHAmha4mysql-node
12345[manager,master,slave1,slave2]shell> yum updateshell> yum -y install perl-DBD-MySQL ncftpshell> wget http://mysql-master-ha.googlecode.com/files/mha4mysql-node-0.53-0.noarch.rpmsehll> rpm -ivh mha4mysql-node-0.53-0.noarch.rpm2.在manager機子上安裝mha4mysql-manager
123456789101112131415161718192021[manager]shell> yum install perlshell> yum install cpanshell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpmerror:perl(Config::Tiny) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch::File) is needed by mha4mysql-manager-0.53-0.noarchperl(Log::Dispatch::Screen) is needed by mha4mysql-manager-0.53-0.noarchperl(Parallel::ForkManager) is needed by mha4mysql-manager-0.53-0.noarchperl(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.rpmshell> wget ftp://ftp.muug.mb.ca/mirror/centos/6.5/os/x86_64/Packages/compat-db43-4.3.29-15.el6.x86_64.rpmshell> wget http://downloads.naulinux.ru/pub/NauLinux/6x/i386/sites/School/RPMS/perl-Log-Dispatch-2.27-1.el6.noarch.rpmshell> wget http://dl.fedoraproject.org/pub/epel/6/i386/perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpmshell> wget http://dl.fedoraproject.org/pub/epel/6/i386/perl-Mail-Sender-0.8.16-3.el6.noarch.rpmshell> wget http://dl.fedoraproject.org/pub/epel/6/i386/perl-Mail-Sendmail-0.79-12.el6.noarch.rpmshell> wget http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-Time-HiRes-1.9721-136.el6.x86_64.rpmshell> 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.rpmshell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm四.建立master,slave1,slave2之間主從復制
12345678910111213141516171819[master:156]1.shell> vim /etc/my.cnf#server-id 改為1server-id=1log-bin=mysql-binbinlog_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 tomaster_host='10.10.54.156',master_port=3306,master_user='rep',master_password='rep123',master_log_file='mysql-bin.000001',master_log_pos=112;注意:slave1機子上也要授權,因為這個是備用master
[slave1:155]
5.mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'10.10.54.%' IDENTIFIED BY 'rep123';
[master,slave1,slave2]
6.查看主從復制是否成功的一些命令
mysql> start slave;
mysql> stop slave;
mysql> reset slave;
mysql> show slave status/G;
五.所有主機上設置復制權限帳號
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mha_rep'@'10.10.2.10' IDENTIFIED BY '123456';
六.manager上配置MHA文件,管理各個節點
[manager:154]
shell> mkdir -p /masterha/app1
shell> mkdir /etc/masterha
shell> vim /etc/masterha/app1.cnf
12345678910111213141516171819202122232425[server default]user=mha_rep ##mysql管理用
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com