
特别是在使用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
MySQL:一键计算每列平均值技巧
MySQL5.7 主主配置实战指南
MySQL图像存储字段类型指南
MySQL架构设计:打造高效数据库方案
Docker实战:轻松搭建MySQL主从复制集群
MySQL密码长度限制全解析
MySQL查询优化:AS关键字省略技巧
MySQL长连接配置指南
MySQL数据库:如何配置部分IP远程访问权限
MySQL5.7安装失败?快速排查指南
MySQL安装与配置全攻略
CentOS系统下MySQL主从同步配置全攻略
布谷鸟MySQL配置错误解决指南
MySQL5.7定义外码方法指南
MySQL5.7优化指南:深度解析my.ini配置文件
CDH Hue集成MySQL:详细配置步骤与指南
MySQL安装:配置失败解决方案
MySQL配置文件详解与使用指南
MySQL5.7.27安装教程:快速上手命令