MySQL 主主复制 配置部署
时间: 2024-03-05 17:48:02 浏览: 18
主主复制是指在两台 MySQL 服务器之间建立双向主从复制,使得两台服务器都可以作为主服务器和从服务器进行读写操作。以下是 MySQL 主主复制的配置部署步骤:
1. 首先,在两台服务器上安装 MySQL 数据库,并确保两台服务器的 MySQL 版本相同。
2. 配置两台服务器的 MySQL 配置文件 my.cnf,将 server-id 参数设置为不同的值,以便在复制时避免 ID 冲突。
3. 在两台服务器上创建用于主从复制的用户,并授予相应的权限。
4. 在第一台服务器上执行以下命令,创建用于复制的数据库和表,并添加一些测试数据:
```
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE mytable (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY (id));
INSERT INTO mytable (name) VALUES ('John'), ('Mary'), ('Tom');
```
5. 在第一台服务器上执行以下命令,开启二进制日志记录(binary logging):
```
vi /etc/my.cnf
# 添加以下配置
log-bin=mysql-bin
server-id=1
```
6. 在第一台服务器上执行以下命令,重启 MySQL 服务,使配置生效:
```
service mysqld restart
```
7. 在第二台服务器上执行以下命令,开启二进制日志记录(binary logging):
```
vi /etc/my.cnf
# 添加以下配置
log-bin=mysql-bin
server-id=2
```
8. 在第二台服务器上执行以下命令,重启 MySQL 服务,使配置生效:
```
service mysqld restart
```
9. 在第二台服务器上执行以下命令,配置主服务器为第一台服务器:
```
CHANGE MASTER TO
MASTER_HOST='first_mysql_host',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
```
其中,first_mysql_host 为第一台服务器的 IP 地址或主机名,replication_user 和 password 为在第一台服务器上创建的用于复制的用户和密码,mysql-bin.000001 为第一台服务器的二进制日志文件名,107 为二进制日志文件的偏移量。
10. 在第一台服务器上执行以下命令,配置主服务器为第二台服务器:
```
CHANGE MASTER TO
MASTER_HOST='second_mysql_host',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
```
其中,second_mysql_host 为第二台服务器的 IP 地址或主机名,replication_user 和 password 为在第二台服务器上创建的用于复制的用户和密码,mysql-bin.000001 为第二台服务器的二进制日志文件名,107 为二进制日志文件的偏移量。
11. 在第一台服务器上执行以下命令,启动主从复制:
```
START SLAVE;
```
12. 在第二台服务器上执行以下命令,启动主从复制:
```
START SLAVE;
```
13. 验证主从复制是否正常工作,可以在两台服务器上执行以下命令:
```
SELECT * FROM mydb.mytable;
```
如果输出结果相同,则说明主从复制已经成功配置部署。
以上就是 MySQL 主主复制的配置部署步骤。需要注意的是,在进行主主复制配置时,需要确保两台服务器的 MySQL 版本相同,并且需要注意防止 ID 冲突。