MySQL8.4主从搭建的实施步骤
时间: 2025-02-17 10:13:45 浏览: 74
### MySQL 8.4 主从复制实施步骤
#### 创建用于复制的用户账户
为了安全起见,在设置主从复制时应避免使用 `root` 用户进行同步配置。建议创建专门用于复制操作的新用户,并授予必要的权限。
```sql
CREATE USER 'slave'@'192.168.%.%' IDENTIFIED BY 'Zabbix@root818';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.%.%';
FLUSH PRIVILEGES;
```
上述命令将在主服务器上创建名为 `slave` 的新用户,允许来自特定子网内的主机连接到该用户[^3]。
#### 配置主服务器
确保主服务器已启用二进制日志记录功能,这是实现数据同步的基础条件之一。编辑 `/etc/my.cnf.d/server.cnf` 文件中的 `[mysqld]` 段落部分:
```ini
server-id=1
log_bin=mysql-bin
binlog_format=row
expire_logs_days=7
max_binlog_size=100M
```
重启 MySQL 服务使更改生效。之后可以查看当前正在使用的二进制文件名及其位置以便稍后在从服务器端指定这些参数[^2]。
#### 获取主服务器状态信息
登录至主服务器执行如下 SQL 查询来获取最新的二进制日志坐标点作为后续配置依据:
```sql
SHOW MASTER STATUS\G
```
此查询返回的结果将显示最近一次写入事件所在的二进制日志名称 (`File`) 和偏移量 (`Position`),这两个值对于初始化从服务器至关重要。
#### 设置从服务器指向主服务器
切换到从服务器环境中,通过下面这条语句告知其要跟踪哪个上游节点以及如何访问它所保存的数据变更历史记录:
```sql
CHANGE MASTER TO
MASTER_HOST='192.168.126.133',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;
```
这里假设已经知道了确切的日志文件名(`master_log_file`)和位置(`master_log_pos`);如果不确定,则可以用 `AUTO_POSITION=1` 替代最后两个选项以自动定位最新有效位点。
#### 启动并验证复制过程
完成以上准备工作后就可以启动 I/O 线程开始拉取更新了:
```sql
START SLAVE;
```
可以通过运行 `SHOW SLAVE STATUS \G` 来确认所有组件都正常工作,特别是关注 `Slave_IO_Running` 及 `Slave_SQL_Running` 字段的状态是否均为 "Yes"[^1]。
阅读全文
相关推荐
















