本文介绍如何在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主从复制配置就完成了。 请务必替换文中占位符为您的实际值。