avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 MySQL 主从复制配置完整指南
文章

MySQL 主从复制配置完整指南

发表于 2024-12-4 更新于 2024-12- 4
作者 jepwei
17~22 分钟 阅读

MySQL 主从复制配置完整指南

1. 概述

1.1 功能简介

MySQL主从复制(Replication)允许将一个MySQL实例(主服务器)的数据实时同步复制到另一个MySQL实例(从服务器)。

Snipaste_2024-12-04_05-07-48.png

1.2 应用场景

  • 数据备份
  • 读写分离
  • 故障转移
  • 数据分析
  • 异地容灾

1.3 工作原理

  1. 主库记录二进制日志
  2. 从库I/O线程读取主库二进制日志
  3. 从库SQL线程重放日志事件

2. 环境准备

2.1 服务器配置

主服务器: 192.168.1.10
- MySQL 8.0
- 8GB RAM
- 4 Core CPU

从服务器: 192.168.1.11
- MySQL 8.0
- 8GB RAM
- 4 Core CPU

2.2 防火墙配置

# 主服务器开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

3. 配置步骤

3.1 主服务器配置

3.1.1 修改配置文件

# vim /etc/my.cnf
[mysqld]
# 基础配置
server-id=1
log-bin=mysql-bin
binlog_format=ROW
sync_binlog=1

# GTID配置(可选)
gtid_mode=ON
enforce_gtid_consistency=ON

# 数据一致性
innodb_flush_log_at_trx_commit=1

# 需要复制的数据库
binlog-do-db=db_name    # 可选

3.1.2 创建复制用户

CREATE USER 'repl_user'@'192.168.1.11' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.11';
FLUSH PRIVILEGES;

3.1.3 获取主库状态

SHOW MASTER STATUS\G

3.2 从服务器配置

3.2.1 修改配置文件

# vim /etc/my.cnf
[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=ON
read_only=ON

3.2.2 配置主从连接

CHANGE MASTER TO
    MASTER_HOST='192.168.1.10',
    MASTER_USER='repl_user',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=1234;

-- 如果使用GTID,则使用:
CHANGE MASTER TO
    MASTER_HOST='192.168.1.10',
    MASTER_USER='repl_user',
    MASTER_PASSWORD='password',
    MASTER_AUTO_POSITION=1;

3.2.3 启动复制

START SLAVE;

4. 验证与监控

4.1 检查复制状态

SHOW SLAVE STATUS\G

关键状态指标:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Seconds_Behind_Master: 0

4.2 监控指标

  • 复制延迟
  • 复制错误
  • 主从数据一致性
  • 二进制日志空间使用情况

5. 故障处理

5.1 常见问题

  1. 复制中断
  2. 数据不一致
  3. 主从延迟

5.2 解决方案

-- 跳过单个事务
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;

-- 修复数据不一致
pt-table-checksum
pt-table-sync

-- 处理大事务导致的延迟
set global slave_parallel_workers=4;

6. 安全建议

6.1 网络安全

  • 使用专用网络进行复制
  • 配置防火墙规则
  • 启用SSL加密复制

6.2 账户安全

  • 定期更改复制账户密码
  • 限制复制用户权限
  • 禁用不必要的账户

7. 维护建议

7.1 日常维护

  • 定期检查复制状态
  • 监控主从延迟
  • 清理过期二进制日志

7.2 备份策略

# 主库备份
mysqldump --master-data=2 --single-transaction --all-databases > backup.sql

# 从库备份
mysqldump --dump-slave=2 --single-transaction --all-databases > backup.sql

8. 性能优化

8.1 参数优化

# 主库优化
sync_binlog=1
innodb_flush_log_at_trx_commit=1

# 从库优化
slave_parallel_type=LOGICAL_CLOCK
slave_parallel_workers=4

8.2 网络优化

  • 使用高带宽网络
  • 降低网络延迟
  • 配置适当的超时参数

9. 总结

主从复制是MySQL高可用性和扩展性的重要基础。通过正确配置和维护,可以实现数据的可靠复制和业务的连续性保障。定期监控和及时维护是确保复制稳定运行的关键。

数据库
mysql
许可协议: 
分享

相关文章

1月 15, 2025

容器部署mysql

1. 创建容器并进行持久化处理 # 拉取镜像 docker pull mysql:8.0.20 # 启动镜像,用于拷贝配置文件到宿主机 docker run -p 13306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.

1月 15, 2025

人大金仓数据库部署

为确保金仓数据库管理系统 KingbaseES 的成功安装,用户需创建专用的 kingbase 用户并为其配置适当的权限。安装前需准备目录、上传安装包与授权文件。运用控制台模式安装时,用户需选择安装集与目录,设定数据库参数及字符集,最后确认安装。安装成功后,通过指定命令确认版本与服务状态,可以有效启动与停止数据库服务,确保系统稳定运行。

12月 20, 2024

容器部署高斯gauss数据库

本指南详细介绍了如何使用Docker部署OpenGauss数据库,包括安装前提、镜像拉取、容器运行和验证安装等步骤。首先确保Docker服务正在运行,然后使用特定命令拉取OpenGauss镜像并启动容器。配置参数包括容器名称、权限、端口映射及数据库密码。成功启动后,可通过命令检查容器状态。此外,还包括远程连接的配置方法及注意事项,确保在生产环境下的安全性和数据备份。

下一篇

MySQL 主主复制配置指南(基于 GTID)

上一篇

Linux 自签证书SSL

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy