Mysql实现MHA高可用
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,环境:CentOS7.4 x 4mha4mysql-manager x 1mha4mysql-node x 3node节点搭建一主双从mha4mysql代码托管:https://code.google
千家信息网最后更新 2025年11月08日Mysql实现MHA高可用
- 环境:
- CentOS7.4 x 4
- mha4mysql-manager x 1
- mha4mysql-node x 3
- node节点搭建一主双从
mha4mysql代码托管:https://code.google.com/archive/p/mysql-master-ha/
一、配置MHA:
1、配置所有主机(包括Manager主机在内),实现ssh-key可以相互登陆
- 当配置文件中的ssh_user为非root用户时:
(1)需要手动创建node节点主机的文件夹,并授权node主机remote_workdir目录的权限给ssh_user用户(2)添加用户为MySQL同组用户,使其有读取mysql binary/relay log文件和relay_log.info文件的权限(3)授权Mysql日志目录的写权限
- 当配置文件中的ssh_user为非root用户时:
2、配置MHA的配置文件,并且安装mha4mysql-manager、 mha4mysql-node
(1)创建并修改配置文件/etc/mastermha/app1.cnf
#配置文件可以放在任意路径下,因为后面命令调用配置文件时需要写出完整路径。[server default]user=mhauser #mysql用户password=centos #mysql用户密码manager_workdir=/data/mastermha/app1/ #Manager主机的工作目录manager_log=/data/mastermha/app1/manager.log #Manager主机的日志remote_workdir=/data/mastermha/app1/ #nodo主机的工作目录ssh_user=root #远程Linux主机系统用户repl_user=repluser #主从复制时使用的mysql用户repl_password=centos #主从复制时使用的mysql密码ping_interval=1 #健康检查间隔时间,单位为秒[server1]hostname=192.168.1.4 #mysql主机IPcandidate_master=1 #是否为备用主库[server2]hostname=192.168.1.6candidate_master=1 #是否为备用主库[server3]hostname=192.168.1.8
- (2)安装mha4mysql-manager、 mha4mysql-node
#事先下载好manager和node,并且版本要一致!!!使用yum安装,需要启用epel源。yum install mha4mysql-manager-0.55-0.el6.noarch.rpm mha4mysql-node-0.55-0.el6.noarch.rpm二、主库配置
(1)修改mysql配置文件
vi /etc/my.cnf[mysqld]log-binserver_id=1innodb_file_per_tableskip_name_resolve=1
- (2)安装mha4mysql-node
yum install mha4mysql-node-0.55-0.el6.noarch.rpm - (3)创建mysql用户;主从同步需要一个用户,MHA需要一个用户。
#MHA切换主库时需要修改Mysql运行时的全局变量,所以需要给所有权限,建议限制用户的登陆IP为特定主机。 mysql>show master logs; mysql>grant replication slave on *.* to 'repluser'@'192.168.1.%' identified by 'centos'; mysql>grant all on *.* to 'mhauser'@'192.168.1.%' identified by 'centos';三、从库1(备用主库)配置:
- (1)修改配置文件
[mysqld]server_id=2 #备用主库需要启用二进制日志!!!log-bin #备用主库需要启用二进制日志!!!read_only #备用主库需要启用二进制日志!!!relay_log_purge=0skip_name_resolve=1 #禁止名字解析innodb_file_per_table
- (2)安装mha4mysql-node
yum install mha4mysql-node-0.55-0.el6.noarch.rpm - (3)设置主从同步
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.4', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245;
- (1)修改配置文件
四、从库2配置:
- (1)修改配置文件
[mysqld]server_id=3read_onlyrelay_log_purge=0skip_name_resolve=1 #禁止名字解析innodb_file_per_table - (2)安装mha4mysql-node
yum install mha4mysql-node-0.55-0.el6.noarch.rpm - (3)设置主从同步
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.4', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245;
- (1)修改配置文件
五、检查并启用MHA
- (1)检查SSH连接
masterha_check_ssh --conf=/etc/mastermha/app1.cnf
- (2)检查node节点
masterha_check_repl --conf=/etc/mastermha/app1.cnf- (1)检查SSH连接
(3)启动脚本,当检测到主库无法连接就会退出,并提升从库为主库。
masterha_manager --conf=/etc/mastermha/app1.cnf- 错误日志:/data/mastermha/app1/manager.log
- 当MHA短时间内频繁的切换主库时,可能会报错,删除/data/mastermha/app1/app1.failover.complete即可!
配置
用户
文件
主机
日志
备用
主从
权限
目录
检查
二进制
节点
同步
名字
密码
时间
路径
切换
工作
登陆
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
恒创软件开发工作室
潍坊百隆升软件开发
仿真服务器和运营服务器的区别
民政网络安全
数据库总和
智合云服务器最新消息
宽带dhcp服务器无反应
eda软件开发教程
网易最强斗罗大陆服务器
咖啡具设计软件开发
架构软件开发人员手册
美国服务器租用服务
文件打印服务器
贵阳盘古网络技术有限公司
项目打包完怎么放服务器
天津网络安全问题
网络安全设备属于几层设备
网络技术应用教案广教版
浙江大数据软件开发价位
人渣scum自己开服务器吗
百度服务器有利于seo吗
王牌战士无法获取服务器列表
盘古网络技术有限公司企业信用
一般仓库进销存软件开发多少钱
软件开发者常用的代码界面
内蒙古科技大学数据库考试
湖南管理软件开发多少钱
网信工作 网络安全
海南专业软件开发服务有哪些
文明重启服务器卡怎么办