0

0

CentOS 6.4下MySQL高可用架构MHA搭建

php中文网

php中文网

发布时间:2016-06-07 16:47:54

|

1198人浏览过

|

来源于php中文网

原创

搭建MHA环境 https://code.google.com/p/mysql-master-ha/ //环境介绍 1.主机部署 manager机:10.10.54.154master机:10.10.54.156

搭建mha环境

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)宕机后,是否会自动切换

//A.首先用ssh-keygen实现四台主机之间相互免密钥登录


[manager机]
1.
shell> ssh-keygen -t rsa -b 2048
shell> scp id_rsa.pub root@10.10.54.155:/root/.ssh/
shell> scp id_rsa.pub root@10.10.54.156:/root/.ssh/
shell> scp id_rsa.pub root@10.10.54.157:/root/.ssh/
2.在另外三台机子上用cat xxx >> authorized_keys导入公钥到/root/.ssh/authorized_keys文件中
3.在其它三台机子重复此步骤,使四台机子中的任何两台之间可以免密码登录

//B.安装MHAmha4mysql-node,mha4mysql-manager 软件包


1.安装MHAmha4mysql-node

[manager,master,slave1,slave2]
shell> yum update
shell> yum -y install perl-DBD-MySQL ncftp
shell> wget
sehll> rpm -ivh mha4mysql-node-0.53-0.noarch.rpm

2.安装mha4mysql-manager

[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
shell> wget
shell> wget
shell> wget
shell> wget
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

//C.建立master,slave1,slave2之间主从复制


[master:156]
1.shell> vim /etc/my.cnf
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;

[slave1:155]
5.mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'10.10.54.%' IDENTIFIED BY 'rep123';
##slave1机子上也要授权,因为这个是备用master

[master,slave1,slave2]
6.查看主从复制是否成功的一些命令
mysql> start slave;
mysql> stop slave;
mysql> reset slave;
mysql> show slave status\G;
7.所有主机上设置复制权限帐号
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mha_rep'@'10.10.2.10' IDENTIFIED BY '123456';

//D.管理机manager上配置MHA文件


[manager:154]
1.
shell> mkdir -p /masterha/app1
shell> mkdir /etc/masterha
shell> vim /etc/masterha/app1.cnf
[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

//E.masterha_check_ssh工具验证ssh信任登录是否成功


[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.

//F.masterha_check_repl工具验证mysql复制是否成功


[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.
---------------------------------------------------------------

//G.启动MHA manager,并监控日志文件

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

178

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

35

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

79

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

2

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

4

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

8

2026.01.28

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

24

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

122

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

72

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.6万人学习

CSS3 教程
CSS3 教程

共18课时 | 5万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号