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 statusG;

当Slave_IO_Runing,Slave_SQL_Running都显示yes时,主从复制配置成功。

原文地址:https://www.cnblogs.com/xxrl-c/p/11073657.html