2个部署在 docker的MySQL服务器,如何互为主从,进行自动备份
时间: 2024-04-29 19:25:23 浏览: 35
要将两个部署在 docker 的 MySQL 服务器互为主从,可以按照以下步骤进行操作:
1. 创建一个新的网络:在主机上创建一个新的 Docker 网络,以便两个容器可以相互通信。
```
docker network create mynetwork
```
2. 启动第一个 MySQL 容器:启动一个 MySQL 容器,并将其添加到上面创建的网络中。
```
docker run -d --name mysql-master --network mynetwork -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_REPLICATION_MASTER=true mysql
```
在此命令中,我们使用了 `MYSQL_REPLICATION_MASTER=true` 参数来标识该容器为主服务器。
3. 启动第二个 MySQL 容器:启动另一个 MySQL 容器,并将其添加到相同的网络中。
```
docker run -d --name mysql-slave --network mynetwork -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_REPLICATION_SLAVE=true mysql
```
在此命令中,我们使用了 `MYSQL_REPLICATION_SLAVE=true` 参数来标识该容器为从服务器。
4. 配置主服务器:在主服务器上配置 MySQL,以允许从服务器连接。
```
docker exec mysql-master mysql -uroot -p<password> -e "GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '<slave_password>'; FLUSH PRIVILEGES; SHOW MASTER STATUS;"
```
在此命令中,我们创建了一个名为 `slave` 的用户,并授予了该用户复制权限。我们还使用 `SHOW MASTER STATUS` 命令获取了主服务器的状态信息。
5. 配置从服务器:在从服务器上配置 MySQL,以便它可以连接到主服务器并进行复制。
```
docker exec mysql-slave mysql -uroot -p<password> -e "CHANGE MASTER TO MASTER_HOST='<master_ip>', MASTER_USER='slave', MASTER_PASSWORD='<slave_password>', MASTER_LOG_FILE='<log_file>', MASTER_LOG_POS=<log_pos>; START SLAVE;"
```
在此命令中,我们使用了 `CHANGE MASTER TO` 命令来配置从服务器连接到主服务器。我们还使用了 `START SLAVE` 命令来启动从服务器的复制进程。
6. 测试主从复制:通过在主服务器上创建一个新的数据库或表来测试主从复制是否正常工作。在从服务器上,应该能够看到新的数据库或表。
7. 设置自动备份:使用 shell 脚本或其他工具自动备份 MySQL 数据库,以防止数据丢失。
以上就是将两个部署在 docker 的 MySQL 服务器互为主从,并进行自动备份的步骤。
相关推荐
![sh](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)