mariadb 主从复制
1.准备两台服务器
利用docker-compose容器编排创建两台服务器,创建docker-compose.yml文件。
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容器
docker-compose up -d
执行完成后会创建一个主从数据库容器。使用docker ps -a查看运行状态。
2.设置主服务器和从服务器mariadb配置
主服务器my.cnf文件中加入如下配置
server-id = 1 log_bin = /var/log/mysql/mariadb-bin
从服务器my.cnf文件中配置
server-id = 2
3.查看主服务器是否开启log_bin日志
进入主服务器容器
docker exec -it home_mariadb-master_1 /bin/bash
进入mariadb数据库
mysql -uroot -proot
查看log_bin是否开启,执行“show variables like '%log_bin%';”
授权用户读取bin日志
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'salve';
查看主服务器BIN日志的信息
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时,主从复制配置成功。