MySQL(94)如何配置主从复制?

配置MySQL主从复制(Master-Slave Replication)是一个分步过程,涉及到主服务器(Master)和从服务器(Slave)的配置。以下是详细的配置步骤和示例代码。

1. 配置主服务器(Master)

1.1 修改主服务器的配置文件

编辑my.cnfmy.ini文件,根据系统的不同,文件可能位于:

  • Linux: /etc/mysql/my.cnf/etc/my.cnf
  • Windows: C:\ProgramData\MySQL\MySQL Server X.Y\my.ini

[mysqld] 部分添加以下配置:

[mysqld]
server-id = 1                  # 主服务器的唯一ID, 必须是唯一的正整数
log-bin = mysql-bin            # 启用二进制日志
binlog-format = row            # 使用行格式的二进制日志

重启MySQL服务以应用配置变更:

sudo service mysql restart
1.2 创建复制用户

在主服务器上,创建一个用于复制的用户并授予权限:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
1.3 获取二进制日志位置

执行以下SQL命令以获取主服务器的二进制日志文件名和位置:

SHOW MASTER STATUS;

你将看到类似以下的输出:

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

记下FilePosition,在配置从服务器时需要用到。

2. 配置从服务器(Slave)

2.1 修改从服务器的配置文件

编辑从服务器的my.cnfmy.ini文件:

[mysqld]
server-id = 2                  # 从服务器的唯一ID, 必须是唯一的正整数
relay-log = mysql-relay-bin    # 启用中继日志

重启MySQL服务以应用配置变更:

sudo service mysql restart
2.2 配置主从关系

在从服务器上执行以下SQL命令,将从服务器配置为从主服务器复制数据:

CHANGE MASTER TO
MASTER_HOST='主服务器IP',         # 主服务器的IP地址
MASTER_USER='replicator',          # 复制用户
MASTER_PASSWORD='password',        # 复制用户的密码
MASTER_LOG_FILE='mysql-bin.000001',# 主服务器的二进制日志文件
MASTER_LOG_POS=154;                # 二进制日志位置
2.3 启动复制

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

START SLAVE;
2.4 检查复制状态

可以通过以下命令检查从服务器的复制状态:

SHOW SLAVE STATUS\G

输出中需要关注的关键字段如下:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes

这两个字段都显示为Yes表示复制正在正常进行。

3. 验证复制

在主服务器上创建一个测试数据库和表,并插入数据:

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);
INSERT INTO test_table (name) VALUES ('test_name');

在从服务器上检查是否能看到这些数据:

USE test_db;
SELECT * FROM test_table;

你应该能够看到与主服务器上相同的数据。

小结

通过以上步骤,你已经成功配置了MySQL的主从复制。主从复制提高了数据的可用性和可靠性,支持负载均衡和数据备份。确保按步骤进行配置,并在生产环境中进行充分测试,以确保系统的稳定性和高效运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辞暮尔尔-烟火年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
OSZAR »