拉取mysql的镜像
docker search mysql
docker pull mysql

通过镜像创建容器,这里先创建第一个容器作为master mysql
-v /etc/mysql:/etc/mysql/conf.d 表示目录共享,目录提前创建好,第二个容器要目录不一样

docker run -d --name one_mysql -v /etc/mysql:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

进入容器
docker exec -it one_mysql bash

宿主机的配置文件
/etc/mysql/mysql.cnf

[mysqld]
server-id = 1
log-bin = mysql-bin

进入容器后
show master status
查看下当前的状态,如果看到binlog日志是我们配置的文件名就说明我们配置成功了

创建第二个容器作为我们的slave mysql

docker run -d --name two_mysql -v /etc/mysql2:/etc/mysql/conf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
宿主机的配置文件
/etc/mysql2/mysql.cnf

[mysqld]
server-id = 2

进入容器看看变量变了没有,如果已经是我们配置的就说明配置文件是成功的
docker exec -it two_mysql bash
show variables like 'server_id';

开启主从复制
change master to master_host='172.17.0.3',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;

start slave
show slave status

看到Slave_Io_Running:yes Slave_SQL_Running:yes 就可以了

修改密码的加密方式,因为默认的加密方式,主从复制的时候,从数据库连接不上
USE mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

docker inspect 容器ID 查看该容器的IP

最新文章

  1. Scala映射
  2. 中断——中断描述符表的定义和初始化(二) (基于3.16-rc4)
  3. angular.js学习手册(二)
  4. Ant-进阶
  5. Cocos2D-x权威指南:核心类成员CCNode
  6. UVa 11495 - Bubbles and Buckets
  7. 浏览器json格式化插件 yformater
  8. C#中制作MDI窗体
  9. Linux服务管理1-1 课程简介与系统运行级别
  10. java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)
  11. OOm是否可以try catch ?
  12. shell | {}和()
  13. String、StringBuffer和StringBulder
  14. Java06-java基础语法(五)数组
  15. Kubeadm 安装
  16. U8API——向U8数据库表导入数据
  17. 转 Objective-C中不同方式实现锁(二)
  18. 【WPF】奇怪的INotifyPropertyChanged的实现
  19. Outlook Top of Information Store
  20. 015---Django的forms组件

热门文章

  1. iOS随记
  2. 如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)
  3. Linux系统学习 二、测评-身份鉴别1
  4. 机器学习(1)——K近邻算法
  5. 9. java API使用 - Scanner类
  6. C++ class内类型重载,operator Type()
  7. ubuntu下使用redshift开启护眼模式
  8. Android 中的AlertDialog使用自定义布局
  9. C缺陷与陷阱
  10. CF1248F Catowice City