MySQL 8 数据库同步指定库的完整教程

随着云计算和微服务架构的流行,数据库的同步变得越来越重要。在这篇文章中,我们将深入探讨如何在 MySQL 8 中同步指定的数据库。对于刚入行的开发者来说,了解整个流程和具体步骤是非常重要的。

数据库同步流程

以下是实现 MySQL 8 同步指定库的整体步骤概述:

步骤描述
1配置主服务器和从服务器
2在主服务器上创建复制用户
3配置主服务器的 binlog
4获取 master_log_file 和 master_log_pos
5配置从服务器
6启动从服务器和测试同步

每一步详细操作

步骤 1: 配置主服务器和从服务器

确保你在主服务器和从服务器上都有 MySQL 8 的安装,并且可以通过网络连接。

步骤 2: 在主服务器上创建复制用户

在主服务器上,创建一个专门用于复制的用户。

CREATE USER 'replication_user'@'%' IDENTIFIED WITH mysql_native_password BY 'replication_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
  • 1.
  • 2.
  • CREATE USER: 创建一个新用户。
  • GRANT REPLICATION SLAVE: 授予复制权限。
步骤 3: 配置主服务器的 binlog

在主服务器的 MySQL 配置文件中(通常是 my.cnf),添加以下配置:

[mysqld]
server-id=1
log_bin=mysql-bin
binlog-do-db=your_database
  • 1.
  • 2.
  • 3.
  • 4.
  • server-id: 每个 MySQL 服务器必须有一个唯一的 ID。
  • log_bin: 启用二进制日志。
  • binlog-do-db: 指定要同步的数据库。

完成配置后,重启 MySQL 服务。

systemctl restart mysql
  • 1.
步骤 4: 获取 master_log_filemaster_log_pos

在主服务器上运行以下命令以获取当前的 binlog 文件和位置:

SHOW MASTER STATUS;
  • 1.

结果示例:

+---------------+-----------+---------+------------------+
| File          | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+-----------+---------+------------------+
| mysql-bin.000001 | 154     | your_database |                  |
+---------------+-----------+---------+------------------+
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

记下 FilePosition 的值:mysql-bin.000001154

步骤 5: 配置从服务器

在从服务器的 MySQL 配置文件中(同样是 my.cnf),添加如下配置:

[mysqld]
server-id=2
  • 1.
  • 2.

重启从服务器的 MySQL 服务。

systemctl restart mysql
  • 1.

然后在从服务器上,执行以下命令,配置从服务器连接主服务器:

CHANGE MASTER TO
  MASTER_HOST='主服务器IP',
  MASTER_USER='replication_user',
  MASTER_PASSWORD='replication_password',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=154;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • CHANGE MASTER TO: 告诉从服务器如何连接主服务器。
步骤 6: 启动从服务器和测试同步

在从服务器上,运行以下命令来启动复制:

START SLAVE;
  • 1.

你可以使用以下命令检查复制状态:

SHOW SLAVE STATUS\G;
  • 1.

如果所有值都为 Yes,说明同步成功。

可视化说明

饼状图
数据库同步步骤 15% 15% 20% 10% 20% 20% 数据库同步步骤 配置主服务器和从服务器 创建复制用户 配置主服务器的 binlog 获取 master_log_file 和 master_log_pos 配置从服务器 启动从服务器和测试同步
状态图
配置主服务器和从服务器 创建复制用户 配置主服务器的 binlog 获取 master_log_file master_log_pos 配置从服务器 启动从服务器和测试同步

结尾

以上就是在 MySQL 8 中同步指定库的完整步骤和代码示例。掌握这项技能后,你将能够更好地处理数据库的高可用性和容灾问题。继续学习和实践,希望你在开发道路上越来越顺利!如果你对过程有任何疑问,欢迎随时联系我。