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

docker開啟兩個MySQL容器

呂致盈2年前18瀏覽0評論

最近在實踐docker時,遇到了一個問題,就是如何開啟兩個MySQL容器。在研究了一番之后,我總結(jié)出了如下步驟:

1. 創(chuàng)建第一個MySQL容器

docker run --name mysql-1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

2. 創(chuàng)建第二個MySQL容器

docker run --name mysql-2 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

注意:兩個MySQL容器的名稱不能相同,端口號需要分別指定,這里我分別指定了3306和3307。

3. 進(jìn)入第一個MySQL容器并修改配置

docker exec -it mysql-1 bash
# 進(jìn)入容器的mysql配置目錄
cd /etc/mysql/conf.d
# 修改MySQL配置文件
vim mysqld.cnf
# 添加如下內(nèi)容
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-do-db = test1

保存配置文件并退出容器。

4. 進(jìn)入第二個MySQL容器并修改配置

docker exec -it mysql-2 bash
# 進(jìn)入容器的mysql配置目錄
cd /etc/mysql/conf.d
# 修改MySQL配置文件
vim mysqld.cnf
# 添加如下內(nèi)容
[mysqld]
server-id = 2
log-bin = mysql-bin
binlog-do-db = test2

保存配置文件并退出容器。

5. 對第一個MySQL容器進(jìn)行replication配置

# 進(jìn)入第一個MySQL容器的MySQL命令行
docker exec -it mysql-1 mysql -uroot -p123456
# 創(chuàng)建replication用的用戶
CREATE USER 'replication'@'%' IDENTIFIED BY '123456';
# 賦予replication用戶權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
# 查看當(dāng)前數(shù)據(jù)庫狀態(tài)
SHOW MASTER STATUS;

記下當(dāng)前數(shù)據(jù)庫狀態(tài)的輸出,包括File和Position兩個值。

6. 對第二個MySQL容器進(jìn)行replication配置

# 進(jìn)入第二個MySQL容器的MySQL命令行
docker exec -it mysql-2 mysql -uroot -p123456
# 備份MySQL配置文件
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
# 生成新的MySQL配置文件
vim /etc/mysql/my.cnf
# 添加如下內(nèi)容
[mysqld]
server-id = 2
log-bin = mysql-bin
binlog-do-db = test2
replicate-do-db = test1
relay-log = mysql-relay-bin
relay-log-index = mysql-relay-bin.index
relay-log-info-file = mysql-relay-bin.info
log-slave-updates
# 重啟容器
docker restart mysql-2
# 進(jìn)行replication配置
CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='123456', MASTER_LOG_FILE='File值', MASTER_LOG_POS=Position值;
# 啟動slave
START SLAVE;

7. 完成配置

到此為止,兩個MySQL容器的數(shù)據(jù)就可以同步了,分別可以通過3306和3307端口訪問。如果想要進(jìn)行數(shù)據(jù)的操作和管理,可以通過docker exec進(jìn)入容器內(nèi)部進(jìn)行。