欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql容器數據同步

傅智翔2年前9瀏覽0評論

MySQL容器數據同步是將一個容器中的MySQL數據庫數據復制到另一個容器中的過程。常見的應用場景包括:

  • 將生產環境的MySQL數據同步到測試環境的容器中,以便進行測試。
  • 將一個容器中的MySQL數據備份到另一個容器中,以實現數據的冷備份。
  • 將一個容器中的MySQL數據同步到另一個地理位置的容器中,以實現數據的熱備份。

下面我們演示一下如何使用docker-compose和mysqldump實現容器數據同步。

version: '3'
services:
db:
image: mysql:5.7
container_name: db
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- /docker/mysql/data:/var/lib/mysql
db-copy:
image: mysql:5.7
container_name: db-copy
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- /docker/mysql/data-copy:/var/lib/mysql
command:
- sh
- -c
- >mysqldump -u root -p${MYSQL_ROOT_PASSWORD} --databases db >/tmp/db.sql
&& mysql -u root -p${MYSQL_ROOT_PASSWORD}< /tmp/db.sql

在上述docker-compose文件中,我們定義了兩個MySQL容器,一個名為db,另一個是db-copy。這兩個容器都運行相同的MySQL 5.7的鏡像。其中db容器是源容器,存儲了我們的MySQL數據;db-copy容器是目標容器,我們將通過mysqldump將源容器中的數據轉儲到/tmp/db.sql文件中,并將這個文件導入到目標容器中,從而實現容器數據同步。

我們可以通過docker-compose up啟動這兩個容器:

$ docker-compose up -d

這時我們可以登錄到db容器中,往其中插入一些數據:

$ docker exec -it db mysql -uroot -ppassword
mysql>CREATE DATABASE db;
mysql>USE db;
mysql>CREATE TABLE users (id INT, name VARCHAR(20));
mysql>INSERT INTO users VALUES (1, 'John'), (2, 'Jane');

當我們確認數據已經在db容器中被創建后,我們可以執行mysqldump并將數據導入到db-copy容器中:

$ docker exec -it db-copy bash
root@db-copy:/# mysqldump -u root -ppassword --databases db >/tmp/db.sql
root@db-copy:/# mysql -u root -ppassword< /tmp/db.sql

現在我們可以登錄到db-copy容器中檢查數據是否被正確地導入了:

$ docker exec -it db-copy mysql -uroot -ppassword
mysql>USE db;
mysql>SELECT * FROM users;
+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Jane  |
+------+-------+
2 rows in set (0.00 sec)

這時我們已經成功地將db容器中的數據同步到了db-copy容器中。