1、下载MySQL镜像

docker pull mysql:5.7
docker images

2、启动MySQL容器

#主库
docker run -p 3316:3306 --name main_mysql -e MYSQL_ROOT_PASSWORD=pwd@123 -d mysql:5.7#从库
docker run -p 3326:3306 --name slave_mysql -e MYSQL_ROOT_PASSWORd=pwd@123 -d mysql:5.7

3、查看容器状态

docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                      PORTS                               NAMES
1b9cc22c327b   mysql:5.7   "docker-entrypoint.s…"   47 minutes ago   Up 22 minutes               33060/tcp, 0.0.0.0:3326->3306/tcp   slave_mysql
d4bc65eb3708   mysql:5.7   "docker-entrypoint.s…"   48 minutes ago   Up 22 minutes               33060/tcp, 0.0.0.0:3316->3306/tcp   main_mysql#启动完成后
#使用Navicat工具测试连接两个连接,分别为master和slave

4、修改主MySQL容器配置


docker exec -it 容器Id /bin/bash
cd /etc/mysql/mysql.conf.d#安装vim命令:
apt-get update
apt-get install vimvim mysqld.cnf[mysqld]## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

5、修改从MySQL容器配置


docker exec -it 容器Id /bin/bash
cd /etc/mysql/mysql.conf.d#安装vim命令:
apt-get update
apt-get install vim[mysqld]
## 设置server_id,注意要唯一
server-id=101
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin

6、重启MySQL主从容器

docker restart 主容器Id
docker restart 从容器Id

7、创建主MySQL的授权访问用户

docker exec -it 容器Id /bin/bash
mysql -uroot -ppwd@123#创建用户并授权,允许从库服务连接主库的服务
CREATE USER 'slave'@'%' IDENTIFIED BY 'pwd@123';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';#生效 刷新一下,
flush privileges;

8、查看主库的binlog文件

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      769 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

9、查看主MySQL容器的host

docker inspect --format='{{.NetworkSettings.IPAddress}}' main_mysql
172.17.0.2

10、配置从MySQL容器的读取设置

docker exec -it 从容器Id /bin/bash
mysql -uroot -ppwd@123change master to master_host='172.17.0.2', master_user='slave', master_password='pwd@123', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 769, master_connect_retry=30;#生效 刷新一下,
flush privileges;

11、开启事务

#查看从库的状态
show slave status \G Slave_IO_Running: NoSlave_SQL_Running: No#开启事务
start slave;
show slave status \G Slave_IO_Running: YesSlave_SQL_Running: Yes

12、测试

#在主库建设一个库 进行测试
#主库
docker exec -it main_mysql sh
mysql -uroot -ppwd@123
create database test;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+#从库
docker exec -it slave_mysql sh
mysql -uroot -ppwd@123
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

docker配置mysql主从相关推荐

  1. docker安装mysql并配置mysql主从集群

    一.安装docker 1.1 安装之前卸载原有的环境 yum remove docker \docker-client \docker-client-latest \docker-common \do ...

  2. docker mysql主从_使用docker 实现MySQL主从同步/读写分离

    1. 利用 docker 实现 mysql 主从同步 / 读写分离 为了保证数据的完整和安全,mysql 设计了主从同步,一个挂掉还可以用另个.最近重构论坛,想来改成主从吧.担心失误,就先拿 dock ...

  3. django给mysql配主从_django中的mysql主从读写分离:一、配置mysql主从分离

    一.配置mysql主从同步的步骤: (1) 在主服务器上,必须开启二进制日志机制和配置一个独立的ID (2) 在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号 (3) 在 ...

  4. docker搭建mysql主从

    前言 为什么要使用Docker搭建? 不管是使用源码安装还是离线安装,在服务器上安装一个mysql总会花费不少的时间,而且对于新人来说,中间稍不注意哪一步出错了就导致安装失败,我之前也是安装过2次才成 ...

  5. docker安装mysql主从视频教程_docker安装mysql主从

    docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...

  6. docker安装mysql主从_docker安装mysql主从

    docker安装mysql主从 启动主库: 1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5 ...

  7. docker下mysql主从搭建

    使用docker 建立mysql主从 环境:Mac Mysql:5.7.36 目标: master主机端口 3307 slave从机端口 3308 在Mac建立master,slave对应目录 log ...

  8. Docker配置mysql以及宿主机容器目录挂载

    Docker配置mysql以及宿主机容器目录挂载 在之前的docker 挂载中主要说明了创建数据卷并挂载的方式.现在我们做一种创建普通目录并进行挂载的方式. 基于mysql镜像的拉取并进行配置. 首先 ...

  9. 使用Docker配置MySQL

    ba使用Docker配置MySQL 内容 安装Docker(略过),直接使用服务器或者你虚拟机对应的安装命令进行安装即可,安装之后打开docker服务,centos 7 下使用systemctl st ...

最新文章

  1. 日本Quoine的ICO平台正式将BCH作为融资货币
  2. nn.CrossEntropyLoss()
  3. C#流对象使用完后不立即释放的问题
  4. 解决针对ubuntu11.04安装中文包后不能正常查看或使用pdf和Archiver的问题
  5. html编辑器不支持自定义样式,百度编辑器自定义按钮样式问题(写在cssRules不起做用)?...
  6. C++面向对象思想 两条直线交点计算
  7. 2019 国家网信办启动网络生态治理专项行动 剑指12类违法违规互联网信息
  8. html 输出不了php,html不打印输出文本
  9. 副本引发的问题corrupt data exception
  10. 42表盘直径是从哪测量_爱彼15703和15710区别在哪?背透和密底哪个更好?
  11. python 柱状图 内部颜色_matplotlib画柱状图,设置同一幅图上的柱子呈现不同颜色...
  12. USB大容量存储设备无法启动--这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。 (代码 32)
  13. 短距离无线通信设备的天线设计
  14. Pitfall of OO Programming
  15. 华为应用市场业务介绍
  16. 百度地图常用jsapi
  17. base64照片压缩
  18. 中国科学院大学计算机分数线低,2018中国科学院大学录取分数线公布,能否冲击清北霸主地位?...
  19. python输出字母金字塔_python实现输入任意一个大写字母生成金字塔的示例
  20. 合伙创业协议书标准模板

热门文章

  1. 2021年安全员-B证(广西省)考试技巧及安全员-B证(广西省)实操考试视频
  2. [转载]Linux内核大讲堂 (一) 设备驱动的基石驱动模型(1)
  3. Chrome扩展插件V3版本配置项参数说明
  4. 景区无线WiFi覆盖太阳能解决方案
  5. 西数SN550冷启动不认盘,睡眠休眠唤醒掉盘解决方案
  6. Flowers(二分答案)
  7. Linux 时间同步 ntp
  8. 一个精辟的看书的回答
  9. mysql fa连接池中间件_小米开源数据库中间件gaea
  10. 实例14婚礼上的谎言