相关的 docker 脚本在工程 docker 目录中。
生成 一主一从,主端口 3338,从端口 3339。 持续化目录放在:/data/ms
生成环境命令
docker-compose up -d
在主数据库中添加一个数据库以及一个表
# 登录到masterdocker-compose exec master mysql -uroot -pMysql@root123msyql>create database wk;msyql>use wk;msyql>create table test(`id` INT, `title` VARCHAR(100) )ENGINE=InnoDB DEFAULT CHARSET=utf8;msyql>insert into test value(1,"dddd");
登陆到 slave01 中看看有没有效果
# 登录到slave01docker-compose exec slave01 mysql -uroot -pMysql@root123mysql>SHOW SLAVE STATUS\Gmysql>select * from wk.test;
#停止运行并移除容器 -- 一般移除后,要手工去删除持久化目录docker-compose down#启动单个服务docker-compose up -d 服务名#查看当前运行的服务docker-compose ps#查看镜像docker-compose images#查看日志docker-compose logs#启动/停止服务docker-compose start/stop 服务名
docker 关键点
mysql 关键点
在 slave 中,连接 master 时候要设置下面两个数值,在不同的文档上有不同的操作方法。
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=155;
在参考文档参考文档3
中就没有设置,这次也是按照这个文档来做的,现在看起来效果还不错。
在以前的文档中,是按照设置来做的,其中参考文档1
还参考了 mysql 官方的文档。
其中参考文档2
使用了 shell 脚本,来得到 msyql 主库中的MASTER_LOG_FILE
数据。
今后如果做成多个从,是连接到主数据库,还是从其中的一个 slave 作为主数据库?
在生产环境中,主从应该放在同一台机器上马?在不同主机上怎么操作?
在开发环境中,使用这种模式马?