Mysql主从
时间: 2025-03-11 08:28:59 浏览: 33
### 设置和配置MySQL主从复制
#### 主库配置 (Master)
为了使主服务器能够记录所有的事务日志,需要编辑 MySQL 配置文件 `/etc/my.cnf` 或者对于 Windows 系统而言,在 `C:\ProgramData\MySQL\MySQL Server 8.0\my.ini` 文件中加入特定参数[^4]。
```ini
server-id=1
log-bin=mysql-bin
binlog-do-db=testdb
```
上述代码片段设置了唯一的 server ID 并启用了二进制日志功能。这一步骤至关重要,因为只有当开启了 binlog 功能之后,才能追踪并传输更新至从服务器。完成此操作后需重启 MySQL 服务以应用更改:
```bash
systemctl restart mysqld
```
接着进入 MySQL 控制台创建用于复制过程中的专用账户,并赋予相应的权限以便于远程连接以及读取二进制日志文件:
```sql
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
```
最后查询当前的二进制日志位置信息供后续配置使用:
```sql
SHOW MASTER STATUS;
```
#### 从库配置 (Slave)
同样地,在从服务器上的 my.cnf 中也需要指定独一无二的服务编号以及其他必要的选项来支持作为 Slave 的角色工作模式[^3]:
```ini
server-id=2
relay-log=mysql-relay-bin
read-only=ON
```
保存修改后的配置文档并且再次启动 MySQL 进程使其生效。随后通过 SQL 命令行工具设定 Master 的 IP 地址、端口号、用户名及其密码等必要属性;同时指明要开始同步的具体 Binlog 文件名与偏移量值(即之前在 Master 上获取的信息),例如:
```sql
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.xxxxxx',
MASTER_LOG_POS=yyyyyy;
START SLAVE;
```
此时可以通过如下指令验证 Slave 是否正常运行:
```sql
SHOW SLAVE STATUS \G
```
确保 `Slave_IO_Running` 和 `Slave_SQL_Running` 字段均为 Yes 表示成功建立了主从关系[^5]。
#### 测试主从复制
向 Master 数据库插入几条测试数据或者结构变更语句,稍作等待片刻后再去检查 Slave 节点的数据一致性情况即可确认整个架构是否搭建无误。
如果遇到任何问题,则可以根据具体的报错提示采取相应措施进行排查修复。比如针对常见的 IO/SQL线程停止的情况给出针对性建议。
阅读全文
相关推荐
















