Mysql主从复制配置教程
标签搜索
侧边栏壁纸
  • 累计撰写 16 篇文章
  • 累计收到 0 条评论

Mysql主从复制配置教程

ranyuan
2024-10-29 / 0 评论 / 54 阅读 / 正在检测是否收录...

MySQL 主从复制配置教程

在本教程中,我们将详细介绍如何配置 MySQL 主从复制,以实现数据的高可用性和负载均衡。我们将从主数据库(Master)和从数据库(Slave)的配置开始,逐步完成整个过程。

1. 环境准备

  • 主数据库(Master): 192.168.1.10
  • 从数据库(Slave): 192.168.1.100
  • MySQL 版本: 5.7 或更高版本

2. 配置主数据库(Master)

2.1 编辑 MySQL 配置文件

在主数据库上编辑 MySQL 配置文件(通常是 /etc/my.cnf/etc/mysql/my.cnf),添加以下配置:

[mysqld]
server-id=1
log_bin=/var/log/mysql/mysql-bin.log
binlog_do_db=your_database_name
  • server-id: 主数据库的唯一标识,必须是一个唯一的正整数。
  • log_bin: 二进制日志文件的路径。
  • binlog_do_db: 指定需要复制的数据库名称。
2.2 重启 MySQL 服务

保存配置文件后,重启 MySQL 服务以应用更改:

sudo systemctl restart mysql
2.3 创建复制用户

在主数据库上创建一个用于复制的用户,并授予相应的权限:

CREATE USER 'user'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'user'@'%';
FLUSH PRIVILEGES;
2.4 获取二进制日志文件和位置

在主数据库上执行以下命令,获取当前的二进制日志文件和位置:

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

记录 FilePosition 的值,稍后在从数据库上配置时会用到。

UNLOCK TABLES;

3. 配置从数据库(Slave)

3.1 编辑 MySQL 配置文件

在从数据库上编辑 MySQL 配置文件,添加以下配置:

[mysqld]
server-id=2
relay_log=/var/log/mysql/mysql-relay-bin.log
log_bin=/var/log/mysql/mysql-bin.log
binlog_do_db=your_database_name
  • server-id: 从数据库的唯一标识,必须是一个唯一的正整数。
  • relay_log: 中继日志文件的路径。
  • log_bin: 二进制日志文件的路径。
  • binlog_do_db: 指定需要复制的数据库名称。
3.2 重启 MySQL 服务

保存配置文件后,重启 MySQL 服务以应用更改:

sudo systemctl restart mysql
3.3 配置从数据库连接主数据库

在从数据库上执行以下命令,配置从数据库连接主数据库:

CHANGE MASTER TO
  MASTER_HOST='192.168.1.10',
  MASTER_USER='user',
  MASTER_PASSWORD='your_password',
  MASTER_LOG_FILE='mysql-bin.000011',
  MASTER_LOG_POS=2397;
  • MASTER_HOST: 主数据库的 IP 地址。
  • MASTER_USER: 用于复制的用户名。
  • MASTER_PASSWORD: 用于复制的用户密码。
  • MASTER_LOG_FILE: 主数据库的二进制日志文件名。
  • MASTER_LOG_POS: 主数据库的二进制日志位置。
3.4 启动从数据库复制

在从数据库上启动复制进程:

START SLAVE;
3.5 检查从数据库状态

在从数据库上执行以下命令,检查复制状态:

SHOW SLAVE STATUS\G

2024-10-29T01:34:29.png
确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes,并且 Last_Error 为空。

4. 处理复制错误

如果在复制过程中遇到错误,可以使用以下命令跳过错误并继续复制:

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;

5. 验证复制

在主数据库上进行一些数据操作(如插入、更新、删除),然后在从数据库上检查数据是否同步。

参考资料

0

评论 (0)

取消