利用docker-compose容器編排建立兩臺服務器,建立docker-compose.yml文件。mysql
version: "3" services: mariadb-master: image: "mariadb:latest" restart: always ports: - 3307:3306 environment: MYSQL_ROOT_PASSWORD: root volumes: - /home/my.cnf:/etc/mysql/my.cnf mariadb-slave: image: "mariadb:latest" restart: always ports: - 3308:3306 environment: MYSQL_ROOT_PASSWORD: root volumes: - /home/my1.cnf:/etc/mysql/my.cnf
執行docker-compose命令建立mariadb容器sql
docker-compose up -d
執行完成後會建立一個主從數據庫容器。使用docker ps -a查看運行狀態。docker
主服務器my.cnf文件中加入以下配置數據庫
server-id = 1 log_bin = /var/log/mysql/mariadb-bin
從服務器my.cnf文件中配置bash
server-id = 2
進入主服務器容器服務器
docker exec -it home_mariadb-master_1 /bin/bash
進入mariadb數據庫3d
mysql -uroot -proot
查看log_bin是否開啓,執行「show variables like '%log_bin%';」rest
受權用戶讀取bin日誌日誌
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'salve';
查看主服務器BIN日誌的信息server
show master status;
記錄file和Position信息,用於配置從服務器。
進入從服務器,執行以下命令。
CHANGE MASTER TO MASTER_HOST='172.18.0.2', --主服務器端口 MASTER_PORT=3306 , --主服務器對外暴露的端口 MASTER_USER='root', MASTER_PASSWORD='root' , MASTER_LOG_FILE='mariadb-bin.000003', MASTER_LOG_POS=532;
查看是否配置成功
show slave status\G;
當Slave_IO_Runing,Slave_SQL_Running都顯示yes時,主從複製配置成功。