mysql8.0主从同步搭建
时间: 2025-02-25 07:51:56 浏览: 43
### 配置 MySQL 8.0 主从复制
#### 启动 Mysql 服务
为了确保配置更改生效,需重启 Mysql 服务。这可以通过命令 `systemctl restart mysqld` 来完成[^1]。
#### 登录到 Mysql 数据库
使用 root 用户身份登录至 Mysql 数据库环境,以便执行必要的 SQL 指令来设定主从关系。
```sql
mysql -u root -p
```
#### 设置主服务器 (Master)
在主服务器上,需要创建用于复制的用户,并赋予相应的权限:
```sql
CREATE USER 'repl_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
```
接着,在主服务器上的 my.cnf 文件中加入如下参数以启用 GTID 和二进制日志功能:
```ini
server-id=1
gtid-mode=ON
enforce-gtid-consistency=true
log-bin=mysql-bin
binlog-format=ROW
master-info-repository=TABLE
relay-log-info-repository=TABLE
```
最后再次重启 Mysql 服务使这些修改生效。
#### 设置从服务器 (Slave)
同样地,在从服务器的 my.cnf 中也需要指定唯一的 server-id 并开启 GTID 支持:
```ini
server-id=2
gtid-mode=ON
enforce-gtid-consistency=true
```
之后启动 Mysql 服务并将此节点连接到主服务器:
```sql
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION = 1;
START SLAVE;
```
验证状态是否正常运行可通过查询 `SHOW SLAVE STATUS\G;` ,其中 `Slave_IO_Running: Yes`, `Slave_SQL_Running: Yes` 表明同步已成功建立[^3]。
#### 创建受限用户
对于日常的操作需求,建议为主从架构下的应用创建具有有限权限的账户,从而保障数据安全性和一致性。例如可以授予特定用户的增删改查等基本权利而不给予超级管理员级别的控制权:
```sql
CREATE USER 'app_user'@'%' IDENTIFIED WITH mysql_native_password BY 'application_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
```
阅读全文
相关推荐









