MySQL5.7 主主配置实战指南
mysql 5.7 主主配置

首页 2025-06-18 20:10:43



MySQL5.7 主主配置全攻略 在当前的数据库架构设计中,主主配置(也称为双主同步)因其高可用性、负载均衡以及读写分离等优势,越来越受到企业的青睐

    特别是在使用MySQL5.7这样的成熟数据库管理系统时,配置主主同步不仅能提升系统的整体性能,还能有效减少单点故障的风险

    本文将详细介绍如何在两台服务器上配置MySQL5.7的主主同步,确保每一步操作都详尽无遗,让你轻松实现高可用性的数据库架构

     一、环境准备 在开始配置之前,我们需要准备两台已经安装好MySQL5.7的服务器

    这里我们假设使用的是CentOS7操作系统,并且两台服务器的IP地址分别为10.25.125.124(服务器A)和10.25.125.125(服务器B)

    同时,请确保两台服务器之间的3306端口是开放的,用于MySQL通信

     1. 关闭防火墙和SELinux 在配置之前,建议先关闭防火墙和SELinux,以避免不必要的干扰

     bash 关闭防火墙 systemctl stop firewalld.service 禁用SELinux setenforce0 永久禁用SELinux(修改/etc/selinux/config文件) sed -i s/^SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config 2. 安装MySQL5.7 如果服务器上尚未安装MySQL5.7,你需要先进行安装

    这里假设你已经有了MySQL5.7的安装包`mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz`

     bash 上传安装包到服务器 解压安装包到/usr/local/ tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 创建符号链接以简化路径 ln -s /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql 创建MySQL用户和组 groupadd mysql useradd -r -g mysql mysql 配置MySQL数据目录(假设数据目录在/data/mysql) mkdir -p /data/mysql chown -R mysql:mysql /data/mysql 二、配置MySQL主主同步 1. 修改MySQL配置文件 在两台服务器上分别修改`/etc/my.cnf`文件,添加或修改以下配置

     服务器A(10.25.125.124)配置: ini 【mysqld】 basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock user=mysql port=3306 log-error=/data/mysql/mysql-error.log pid-file=/data/mysql/mysqld.pid 启用二进制日志 log-bin=mysql-bin server-id=1 每台服务器的server-id必须唯一 主主复制相关配置 auto_increment_increment=2 auto_increment_offset=1 log_slave_updates=1 sync_binlog=1 服务器B(10.25.125.125)配置: ini 【mysqld】 basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock user=mysql port=3306 log-error=/data/mysql/mysql-error.log pid-file=/data/mysql/mysqld.pid 启用二进制日志 log-bin=mysql-bin server-id=2 每台服务器的server-id必须唯一 主主复制相关配置 auto_increment_increment=2 auto_increment_offset=2 log_slave_updates=1 sync_binlog=1 保存配置文件后,重启MySQL服务以应用更改

     bash service mysqld restart 2. 创建复制用户 在两台服务器上分别执行以下SQL命令,创建用于主主复制的用户

     sql CREATE USER repl@% IDENTIFIED BY repl123456; GRANT REPLICATION SLAVE ON. TO repl@%; FLUSH PRIVILEGES; 3. 获取二进制日志信息 在两台服务器上分别执行以下命令,获取二进制日志文件名和位置

     sql SHOW MASTER STATUS; 记录下每台服务器的File和Position信息,这些信息在后续配置复制关系时会用到

     4. 配置复制关系 在服务器A上执行以下命令,配置指向服务器B的复制关系

     sql CHANGE MASTER TO MASTER_HOST=10.25.125.125, MASTER_USER=repl, MASTER_PASSWORD=repl123456, MASTER_LOG_FILE=mysql-bin.000001,替换为服务器B的File信息 MASTER_LOG_POS=1234;替换为服务器B的Position信息 在服务器B上执行以下命令,配置指向服务器A的复制关系

     sql CHANGE MASTER TO MASTER_HOST=10.25.125.124, MASTER_USER=repl, MASTER_PASSWORD=repl123456, MASTER_LOG_FILE=mysql-bin.000001,替换为服务器A的File信息 MASTER_LOG_POS=1234;替换为服务器A的Position信息 5. 启动复制进程 在两台服务器上分别执行以下命令,启动复制进程

     sql START SLAVE; 6. 检查复制状态 在两台服务器上分别执行以下命令,检查复制状态

     sql SHOW SLAVE STATUS G; 确保`Slave_IO_Running`和`Slave_SQL_Running`的状态都是`Yes`

    如果出现任何问题,请检查配置文件、用户权限以及网络连接等

     三、测试主主同步 配置完成后,我们可以通过在主库上插入数据,然后在从库上查询数据来测试主主同步是否正常工作

     1. 在服务器A上创建测试数据库和表 sql CREATE DATABASE test_db; USE test_db; CREATE TABLE test_table( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) ); 2. 在服务器A上插入数据 sql INSERT INTO test_table(name) VALUES(Test Data A); 3. 在服务器B上查询数据 sql USE test_db; SELECTFROM test_table; 你应该能够看到在服务器A上插入的数据

    同样地,你也可以在服务器B上插入数据,然后在服务器A上查询数据来验证同步效果

     四、注意事项与故障排查 1.防火墙和网络连接:确保两台服务器之间的3

nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密