本地两个 mysql数据库_实现两个MySQL数据库之间的主从同步
时间: 2024-02-20 17:56:42 浏览: 133
要实现两个 MySQL 数据库之间的主从同步,需要进行以下步骤:
1. 在主数据库上开启二进制日志功能,即在主数据库配置文件 my.cnf 中添加以下配置:
```
log-bin=mysql-bin
server-id=1
```
其中,log-bin 表示启用二进制日志,mysql-bin 是二进制日志文件的前缀,可以自定义。server-id 表示主数据库的唯一标识,可以设置为任意整数。
2. 在从数据库上配置主从复制,即在从数据库配置文件 my.cnf 中添加以下配置:
```
server-id=2
relay-log=mysql-relay-bin
relay-log-index=mysql-relay-bin.index
```
其中,server-id 表示从数据库的唯一标识,与主数据库不同即可。relay-log 和 relay-log-index 表示从数据库中继日志文件的前缀和索引文件名,可以自定义。
3. 在主数据库上创建用于复制的账号,并授权给从数据库,如下所示:
```
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
```
其中,repl 是用于复制的账号,% 表示允许任意 IP 地址连接,password 是该账号的密码。GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' 表示授予该账号复制权限。
4. 在从数据库上启动主从复制,执行以下命令:
```
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;
START SLAVE;
```
其中,MASTER_HOST 表示主数据库的 IP 地址,MASTER_PORT 表示主数据库的端口号,MASTER_USER 和 MASTER_PASSWORD 分别表示用于复制的账号和密码。MASTER_LOG_FILE 和 MASTER_LOG_POS 分别表示主数据库当前二进制日志文件名和位置,可以通过 SHOW MASTER STATUS 命令查看。
执行完以上步骤后,从数据库就可以实现主从同步了。需要注意的是,如果主数据库的数据发生了变化,需要在从数据库上重新执行 CHANGE MASTER TO 和 START SLAVE 命令,以更新复制信息。
阅读全文