通过docker-compose创建容器 ,在Linux中创建MySQL 的一主三从模式

一、安装docker-compose结束后
通过docker-compose创建容器 ,在Linux中创建MySQL 的一主三从模式_第1张图片
以下下是docker-compose.yml文件内容

version: '3.0'
services:
      master:
    image: mysql:8.0.23
    container_name: master
  restart: always
    network_mode: bridge
    ports:
      - 3306:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/mysql001/:/mysql001

  slave01:
image: mysql:8.0.23
container_name: slave01
restart: always
network_mode: bridge
ports:
  - 3307:3306
environment:
  LANG: C-UTF.8
  TZ: Asia/Shanghai
  MYSQL_ROOT_PASSWORD: "root"
volumes: 
  - /root/mysql001/:/mysql001

  slave02:
image: mysql:8.0.23
container_name: slave02
restart: always
network_mode: bridge
ports:
  - 3308:3306
environment:
  LANG: C-UTF.8
  TZ: Asia/Shanghai
  MYSQL_ROOT_PASSWORD: "root"
volumes: 
  - /root/mysql001/:/mysql001

  slave03:
    image: mysql:8.0.23
    container_name: slave03
    restart: always
    network_mode: bridge
    ports:
      - 3309:3306
    environment:
      LANG: C-UTF.8
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "root"
    volumes: 
      - /root/mysql001/:/mysql001



二、操作
确定打开docker 检测docker ps -a

systemctl start docker

确定存在docker-compose 查询其版本号

docker-compose --version

利用其创建4个mysql容器

  • docker-compose -f docker-compose.yml up -d
    image.png

成功创建后,需检查其server_id 并配置为:主为1其为234 配置文件在容器中/etc/mysql/my.cnf
通过docker-compose创建容器 ,在Linux中创建MySQL 的一主三从模式_第2张图片
由于容器中并不存在vi等编辑器,将其放在属主机中进行修改

 (1)复制 docker cp slave01:/etc/mysql/my.cnf ./
 (2)检查 ls -l    cat my.cnf
 (3)修改 vi my.cnf

也可用sed工具,
再将修改后配置文件复制的到容器中

docker cp ./my.cof slave01:/etc/mysql/my.cnf

为节约可在这步中将文件修改后分别传入对应容器

在将 docker-compose 中创建的容器重启

docker-compose restart slave01 slave02 slave03

查看容器
进入MySQL容器

docker exec -it master bash

(可通过 show variables like 'server_id';查看配置文件是否修改成功)

二、在mysql中操作
修改密码插件

alter user 'root'@'%' identified with mysql_native_password by 'root';

刷新生效

flush privileges;

查看主机状态 可得 master_log_file, master_log_pos

show master status;

其余从机同上操作

登录到从机上使用通信命令:

change master to 
master_host='192.168.58.131',
master_port=3306,
master_user='root',
master_password='root',
master_log_file='binlog.000002',
master_log_pos=605;

启动服务

start slave;

检查时候建立成功

show slave status \G;

在验证复制架构是否ok
通过docker-compose创建容器 ,在Linux中创建MySQL 的一主三从模式_第3张图片
出现两个yes即证明成功
从机检查是否存在MySQL

将所给给的文件导入
在主机上的MySQL中运行脚本

source /sql/text.sql

三、如果报错
检查是否操作都全部进行刷新操作
image.png
从机连接上但主机位置或者内容写错,这时就需要暂停slave服务,并重新来一遍对从机的操作,需检查
通过docker-compose创建容器 ,在Linux中创建MySQL 的一主三从模式_第4张图片
内容,注:对主机操作结束后,不能再进行其他操作,以防日志等文件进行改变。
可能Linux防火墙未关闭

你可能感兴趣的:(数据库mysqlxml)