要在Docker中部署MySQL主從復制,需要執行以下步驟:
創建一個網絡(可選):
docker network create mysql-net
啟動MySQL主節點容器:
docker run -d --name mysql-master --network mysql-net -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql
啟動MySQL從節點容器:
docker run -d --name mysql-slave --network mysql-net -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password mysql
在主節點容器中啟用二進制日志和主從復制功能:
docker exec -it mysql-master bash
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
記下File
和Position
的值。
在從節點容器中配置主從復制:
docker exec -it mysql-slave bash
mysql -u root -p
CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='[File]', MASTER_LOG_POS=[Position];
START SLAVE;
將[File]
和[Position]
替換為主節點的相應值。
現在,你已經成功部署了MySQL主從復制。可以通過連接到主節點容器的3306
端口或從節點容器的3307
端口來訪問數據庫。