docker 配置 Redis 主從

chaofu發表於2020-09-24

安裝MySQL

使用Docker拉取MySQL映象

 # docker pull mysql:5.7

利用剛才的映象構建容器

docker run --name master -p 3406:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

docker run --name slave -p 3506:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

檢視容器是否成功

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
53c7082cc45c        mysql:5.7           "docker-entrypoint.s…"   About an hour ago   Up 28 minutes       33060/tcp, 0.0.0.0:3506->3306/tcp   slave
01bc525eb7f7        mysql:5.7           "docker-entrypoint.s…"   5 hours ago         Up 29 minutes       33060/tcp, 0.0.0.0:3406->3306/tcp   master

修改配置檔案

# 確定 master 容器 msyql 配置檔案(現在的容器是 mysqld.cnf)
#第一步 複製容器的檔案到 宿主機(如果沒有 對應的目錄需要建立)
 docker cp master:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/mysql/master/mysqld.cnf
# 第二步 編輯 mysqld.cnf 在 [mysqld] 節點最後加上後儲存
log-bin=mysql-bin 
server-id=1  # 很重要 這個是唯一 用來生成 uuid

# 第三步 複製配置檔案到 容器
docker cp /usr/local/mysql/master/mysqld.cnf  master:/etc/mysql/mysql.conf.d/mysqld.cnf

# 第四步 從容器同樣的操作 server-id 不能相同(切記)

# 記得重啟容器

navicat 連線 (master)msyql 伺服器 實現主從複製

show master status;

docker  配置 redis 主從

navicat 連線 (slave)msyql 伺服器 實現主從複製

STOP SLAVE;

CHANGE MASTER TO 
MASTER_HOST='192.168.56.99',
MASTER_PORT=3406,
MASTER_LOG_FILE='mysql-bin.000002', 
MASTER_LOG_POS = 1640,
MASTER_USER='root',
MASTER_PASSWORD='root';

START SLAVE;

show slave status;

在 從 容器 檢視 主從複製狀態

show slave status;

docker  配置 redis 主從
兩個都為 YES 說明成功
如果有問題,需要檢查 IP,埠 ,使用者名稱和密碼,MASTER_LOG_FILE,MASTER_LOG_POS 是否正確

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章