当前位置:首页 > Centos > 正文

CentOS数据库复制配置(手把手教你搭建MySQL主从复制实现数据同步)

在企业级应用中,为了提高数据库的可用性、读取性能以及实现数据备份,CentOS数据库复制(尤其是MySQL主从复制)是一种非常常见且有效的解决方案。本文将面向初学者,详细讲解如何在CentOS系统上配置MySQL主从复制,确保即使你是小白也能轻松上手。

什么是MySQL主从复制?

MySQL主从复制是指将一台MySQL服务器(称为主服务器,Master)的数据自动复制到另一台或多台MySQL服务器(称为从服务器,Slave)的过程。主服务器负责写操作,从服务器负责读操作,从而实现数据库同步和负载均衡。

CentOS数据库复制配置(手把手教你搭建MySQL主从复制实现数据同步) CentOS数据库复制 MySQL主从复制 CentOS MySQL配置 数据库同步教程 第1张

环境准备

  • 两台运行 CentOS 7/8 的服务器(本文以 CentOS 7 为例)
  • 主服务器 IP:192.168.1.10
  • 从服务器 IP:192.168.1.11
  • 已安装 MySQL 5.7 或 8.0(建议使用相同版本)

第一步:配置主服务器(Master)

1. 编辑 MySQL 配置文件:

[root@master ~]# vi /etc/my.cnf# 在 [mysqld] 段落下添加以下内容:[mysqld]server-id = 1log-bin = mysql-binbinlog-do-db = your_database_name  # 可选:指定要复制的数据库binlog-ignore-db = mysql           # 可选:忽略的数据库

2. 重启 MySQL 服务:

[root@master ~]# systemctl restart mysqld

3. 登录 MySQL,创建用于复制的用户:

mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongPassword123!';mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';mysql> FLUSH PRIVILEGES;

4. 查看主服务器状态,记录 File 和 Position 值:

mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      154 | your_db      | mysql            |+------------------+----------+--------------+------------------+

第二步:配置从服务器(Slave)

1. 编辑 MySQL 配置文件:

[root@slave ~]# vi /etc/my.cnf[mysqld]server-id = 2relay-log = mysql-relay-binread-only = 1

2. 重启 MySQL 服务:

[root@slave ~]# systemctl restart mysqld

3. 登录 MySQL,配置主从连接:

mysql> CHANGE MASTER TO    MASTER_HOST='192.168.1.10',    MASTER_USER='repl_user',    MASTER_PASSWORD='StrongPassword123!',    MASTER_LOG_FILE='mysql-bin.000001',    MASTER_LOG_POS=154;mysql> START SLAVE;

4. 检查从服务器状态:

mysql> SHOW SLAVE STATUS\G# 确保以下两项为 Yes:Slave_IO_Running: YesSlave_SQL_Running: Yes

第三步:验证复制是否成功

在主服务器上创建一个测试表或插入数据:

mysql> USE your_database_name;mysql> CREATE TABLE test_replication (id INT PRIMARY KEY, name VARCHAR(50));mysql> INSERT INTO test_replication VALUES (1, 'Hello Replication');

然后在从服务器上查询该表,如果能看到相同数据,说明CentOS MySQL配置成功,数据库同步教程中的复制功能已正常工作!

常见问题排查

  • 防火墙未开放 3306 端口:使用 firewall-cmd --add-port=3306/tcp --permanent 开放端口
  • Slave_IO_Running 为 No:检查主服务器IP、账号密码、网络连通性
  • Position 不匹配:重新执行 SHOW MASTER STATUS 获取最新位置

总结

通过以上步骤,你已经成功在 CentOS 系统上完成了 MySQL主从复制 的配置。这不仅提升了数据库的可靠性,也为后续的高可用架构打下基础。希望这篇 数据库同步教程 能帮助你轻松掌握 CentOS数据库复制 的核心技能!