【MySQL 5.7.22 MHA 0.57 高可用集群配置详解】 在高可用性环境中,MySQL数据库通常采用主从复制架构,搭配高可用管理工具MHA(Master High Availability)来实现故障切换和数据一致性。本文将详细介绍如何在CentOS 7.4系统上,基于MySQL 5.7.22版本和MHA 0.57进行配置。 ### 一、MHA架构简介 MHA(Master High Availability)是用于管理MySQL主从复制集群的开源工具,它能够监控主库状态,并在主库发生故障时自动将一个从库提升为主库,确保服务的连续性和数据的一致性。MHA由一个管理节点和多个数据节点组成,管理节点负责监控和决策,数据节点包括主库和从库。 ### 二、环境准备 #### 1. 系统与软件版本 - **操作系统**:CentOS 7.4 64位 - **MySQL**:5.7.22 - **MHA**:0.57 #### 2. IP规划 - 主库(master1):192.168.189.210 - 从库1(slave1):192.168.189.212 - 从库2(slave2,同时也是MHA管理节点):192.168.189.213 ### 三、基础配置 在所有服务器上执行以下步骤: 1. 关闭防火墙和SELinux: ``` sed –i "s# SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config systemctl stop firewalld systemctl disable firewalld ``` 2. 安装依赖包,移除MariaDB相关组件: ``` yum -y install cmake bison git ncurses-devel libaio gcc gcc-c++ lrzsz vim yum remove mariadb* -y ``` ### 四、MySQL 5.7.22 安装 在所有服务器上执行以下步骤: 1. 创建`mysql`用户和安装目录,并赋予相应权限: ``` groupadd mysql useradd -r -g mysql -s /bin/false mysql mkdir -p /usr/local/mysql mkdir -p /data/mysql mkdir /usr/local/mysql/logs && touch /usr/local/mysql/logs/mysqld.log chown -R mysql.mysql /usr/local/mysql && chmod -R 777 /usr/local/mysql chown -R mysql.mysql /data/mysql && chmod -R 777 /data/mysql ``` 2. 解压并编译安装MySQL源码: ``` cd /opt tar zxvf boost_1_59_0.tar.gz -C /usr/local/ tar zxvf mysql-5.7.22.tar.gz cd mysql-5.7.22 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql \ -DWITH_BOOST=/usr/local/boost_1_59_0 -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DMYSQL_USER=mysql make make install ``` 3. 修改配置文件 `/etc/my.cnf`: ``` [mysqld] basedir = /usr/local/mysql datadir = /data/mysql log-error = /usr/local/mysql/logs/mysqld.log pid-file = /usr/local/mysql/mysqld.pid default-storage-engine=MyISAM user = mysql symbolic-links=0 #skip-grant-tables [mysqld_safe] log-error=/usr/local/mysql/logs/mysqld.log pid-file=/usr/local/mysql/mysqld.pid ``` 4. 初始化数据库: ``` cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql ``` 5. 配置启动脚本: ``` cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld ``` 6. 配置环境变量: ``` echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` 7. 启动MySQL服务: ``` systemctl start mysqld systemctl enable mysqld ``` ### 五、MySQL主从复制配置 1. 在主库上创建复制用户: ``` mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; SHOW MASTER STATUS; ``` 记录下返回的`File`和`Position`值。 2. 在从库上配置复制: ``` CHANGE MASTER TO MASTER_HOST='master1_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='刚才的File', MASTER_LOG_POS='刚才的Position'; START SLAVE; SHOW SLAVE STATUS \G; ``` 确认`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`。 ### 六、MHA 0.57 安装与配置 1. 在MHA管理节点(slave2)上安装MHA Manager: ``` pip install python-mha-manager pip install python-mysql-replication ``` 2. 配置MHA Manager: 创建配置文件`/etc/mha_manager.conf`,包含如下内容: ``` [nodes] master1=192.168.189.210:3306:repl:password slave1=192.168.189.212:3306:repl:password slave2=192.168.189.213:3306:repl:password [manager] node_manager_user=repl node_manager_password=password replication_user=repl replication_password=password email_from=mha@yourdomain.com email_to=admin@yourdomain.com ``` 3. 启动MHA Manager: ``` mha_manager --conf=/etc/mha_manager.conf --pid_file=/var/run/mha_manager.pid start ``` 现在,你已经成功配置了一个基于MySQL 5.7.22和MHA 0.57的高可用集群。当主库发生故障时,MHA Manager会自动检测到,并将一个从库提升为主库,其他从库则继续同步新主库的数据,从而保证服务的连续性和数据的一致性。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/10559010/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10559010/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10559010/bg3.jpg)
![](https://csdnimg.cn/release/download_crawler_static/10559010/bg4.jpg)
剩余21页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- jinyu3452019-06-20挺好的,感谢分享
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 2
- 资源: 17
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)