docker mysql 一主4从备份
时间: 2024-05-08 18:17:01 浏览: 99
可以使用以下步骤在 Docker 中实现一主四从备份的配置:
1. 启动 MySQL 主服务器容器
使用 Docker 命令启动 MySQL 主服务器容器,例如:
```
docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
```
2. 配置主服务器
使用 MySQL 客户端连接到主服务器,并创建用于备份的用户和数据库。例如:
```
mysql -u root -p -h localhost -P 3306
CREATE USER 'backup'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'backup'@'%';
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE mytable (id INT PRIMARY KEY, name VARCHAR(50));
INSERT INTO mytable (id, name) VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
```
注意将密码和数据库名称替换为您自己的值。
3. 启动 MySQL 从服务器容器
使用 Docker 命令启动四个 MySQL 从服务器容器,并将它们连接到主服务器。例如:
```
docker run --name mysql-slave1 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_REPLICATION_MASTER_HOST=mysql-master -d mysql:latest
docker run --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_REPLICATION_MASTER_HOST=mysql-master -d mysql:latest
docker run --name mysql-slave3 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_REPLICATION_MASTER_HOST=mysql-master -d mysql:latest
docker run --name mysql-slave4 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_REPLICATION_MASTER_HOST=mysql-master -d mysql:latest
```
4. 配置从服务器
使用 MySQL 客户端连接到每个从服务器,并配置它们作为主服务器的从服务器。例如:
```
mysql -u root -p -h localhost -P 3306
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='backup', MASTER_PASSWORD='password', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=0;
START SLAVE;
```
重复这个步骤对每个从服务器进行配置。注意将主服务器的地址、备份用户的用户名和密码替换为您自己的值。
5. 测试备份
使用 MySQL 客户端连接到主服务器,修改数据并检查它是否被同步到从服务器。例如:
```
mysql -u root -p -h localhost -P 3306
USE mydb;
UPDATE mytable SET name='David' WHERE id=1;
```
然后使用 MySQL 客户端连接到每个从服务器,检查数据是否被同步。例如:
```
mysql -u root -p -h localhost -P 3306
USE mydb;
SELECT * FROM mytable;
```
如果数据被正确同步,则备份配置工作正常。
阅读全文