部署mysql主从复制
时间: 2024-12-31 07:35:38 浏览: 8
### 部署配置 MySQL 主从复制
#### 修改服务器配置文件
为了实现主从复制,需调整MySQL配置文件`my.cnf`或`mysqld.cnf`中的参数。具体来说,在主服务器和从服务器上分别设置唯一的 `server-id` 参数[^1]。
对于从服务器(假设名为slave1和slave2),应在配置文件中加入如下行来指定不同的ID:
```ini
[mysqld]
server-id=2 # 对于slave1而言;如果是slave2,则应设为其他唯一值比如3
```
#### 创建并启动Docker容器作为MySQL实例
利用 Docker 可简化环境搭建过程。通过特定命令可迅速建立包含所需版本MySQL服务的容器化应用实例[^2]。
针对主节点(master),执行以下指令创建并启动容器:
```bash
docker run -p 3307:3306 --name master-mysql \
-v /masterdata/mysql-master/log:/var/log/mysql \
-v /masterdata/mysql-master/data:/var/lib/mysql \
-v /masterdata/mysql-master/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
```
此操作会映射主机端口至容器内部,并挂载必要的数据卷用于持久存储以及自定义配置。
#### 设置主从关系
完成上述准备工作之后,还需进一步设定两者的关联逻辑。这涉及到几个关键步骤:启用二进制日志记录功能、授权远程连接权限给从库用户、获取当前binlog位置信息以便后续同步使用等[^3]。
最后一步是在各从属节点上执行相应的SQL语句以指明其上游源的位置与状态,例如:
```sql
CHANGE MASTER TO
MASTER_HOST='主服务器IP地址',
MASTER_USER='replication_user',
MASTER_PASSWORD='password_for_replica_user',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=<position>;
START SLAVE;
```
这里需要注意的是 `<position>` 应替换为主服务器实际的日志偏移量数值。
当遇到由于数据不同步引发的问题时,可以通过跳过错过的SQL语句或者重置整个同步流程的方式来解决[^4]。
阅读全文