一、装置docker-compose完结后
以下下是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.23container_name: slave01restart: alwaysnetwork_mode: bridgeports: - 3307:3306environment: LANG: C-UTF.8 TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: "root"volumes: - /root/mysql001/:/mysql001 slave02:image: mysql:8.0.23container_name: slave02restart: alwaysnetwork_mode: bridgeports: - 3308:3306environment: 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
胜利创立后,需查看其server_id 并配置为:主为1其为234 配置文件在容器中/etc/mysql/my.cnf
因为容器中并不存在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
呈现两个yes即证实胜利
从机查看是否存在MySQL
将所给给的文件导入
在主机上的MySQL中运行脚本
source /sql/text.sql
三、如果报错
查看是否操作都全副进行刷新操作
例
从机连贯上但主机地位或者内容写错,这时就须要暂停slave服务,并从新来一遍对从机的操作,需查看
内容,注:对主机操作完结后,不能再进行其余操作,以防日志等文件进行扭转。
可能Linux防火墙未敞开