Hello! 欢迎来到小浪云!


MySQL在Linux上如何配置主从复制


MySQL在Linux上如何配置主从复制

本文介绍如何在Linux系统上搭建mysql主从复制架构,实现数据高可用和负载均衡。 以下步骤将指导您完成配置过程:

一、准备工作

确保主服务器(Master)和从服务器(Slave)都已安装相同版本的MySQL数据库

二、主服务器配置

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  # 替换为需要复制的数据库

2.2 重启MySQL服务

保存配置文件后,重启MySQL服务:

sudo systemctl restart mysql

2.3 创建复制用户

连接MySQL数据库,创建一个用于复制的专用用户:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';  # 替换为您的密码 GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;

2.4 获取主服务器状态

获取主服务器的二进制日志文件信息:

SHOW MASTER STATUS;

记录下File和position的值,后续配置从服务器时需要用到。

三、从服务器配置

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  # 替换为需要复制的数据库名 read_only = 1

3.2 重启MySQL服务

保存配置文件后,重启MySQL服务:

sudo systemctl restart mysql

3.3 配置复制

连接从服务器的MySQL数据库,执行以下命令配置复制:

CHANGE MASTER TO MASTER_HOST='master_ip_address',  # 替换为主服务器IP地址 MASTER_USER='replicator', MASTER_PASSWORD='your_password',  # 替换为您的密码 MASTER_LOG_FILE='mysql-bin.000001',  # 替换为主服务器的File值 MASTER_LOG_POS=123;  # 替换为主服务器的Position值

3.4 启动复制

启动从服务器的复制进程:

START SLAVE;

3.5 检查复制状态

检查从服务器的复制状态:

SHOW SLAVE STATUSG

确认Slave_IO_Running和Slave_SQL_Running都显示为Yes。如果显示为No,请检查错误信息并进行相应调整。

四、验证复制

在主服务器上插入一些数据,然后在从服务器上验证数据是否已同步。

五、注意事项

  • 保证主从服务器时间同步。
  • 确保防火墙允许MySQL端口(默认3306)的网络通信。
  • 定期检查复制状态,及时发现并解决潜在问题。

完成以上步骤后,您的MySQL主从复制配置就完成了。 请务必替换文中占位符为您的实际值。

相关阅读