拉取MySQL镜像

## 下载最新版本的MySQL镜像

docker pull mysql

创建两个主从MySQL数据库容器

第一步,需要创建一个目录,用来存放与容器中配置文件对应的物理地址

目录结构如下:

master my.cnf配置文件内容如下:

[mysqld]

server_id = 1

log-bin= mysql-bin

read-only=0

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

slave my.cnf配置文件内容如下:

[mysqld]

server_id = 2

log-bin= mysql-bin

read-only=1

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

第二步,创建两个主从镜像,命令如下:

创建主数据库master

docker run --name mysql-master -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -v /Users/young/programs/docker_mysql/master/data:/var/lib/mysql -v /Users/young/programs/docker_mysql/master/conf/my.cnf:/etc/mysql/my.cnf -v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files mysql:latest

创建从数据库slave

docker run --name mysql-slave -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -v /Users/young/programs/docker_mysql/slave/data:/var/lib/mysql -v /Users/young/programs/docker_mysql/slave/conf/my.cnf:/etc/mysql/my.cnf -v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files mysql:latest

这里要注意,MySQL8以后,需要在映射文件中加入-v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files,否则会创建失败。

配置主从数据库

配置主数据库master

//进入master容器

docker exec -it mysql-master bash

//进入mysql数据库,密码为前边设置的密码

mysql -u root -p

//创建一个用户来同步数据,每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE 权限。

//出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

CREATE USER 'slave'@'%' IDENTIFIED BY 'your password';(这样有可能在slave创建与master连接时报错)

或者

CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';

//对用户进行授权(复制权限)

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%';

//查看状态,记住File、Position的值,在Slave中将用到

show master status;

//查询master容器的IP,会在slave设置主库连接时用到

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master

配置从数据库slave

//进入slave容器

docker exec -it mysql-slave bash

//启动mysql命令

mysql -u root -p

//设置主库链接 change master to 语法参考[语法参考](https://blog.csdn.net/jesseyoung/article/details/41942809)

change master to master_host='本机ip',master_user='slave',master_password='your password',master_log_file='mysql-bin.000004',master_log_pos=master's position,master_port=3306;

//启动从库同步

start slave;

//查看状态

show slave status\G;

//如果 show slave status\G命令结果中出现:

//Slave_IO_Running: Yes

//Slave_SQL_Running: Yes

//以上两项都为Yes,那说明没问题了。

//否则,从新配置从数据

stop slave;

reset slave all;

注意,如果在查看slave状态时,提示Authentication plugin 'caching_sha2_password' cannot be loaded错误,出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,则要更改master数据库中密码的加密规则。所以,为了以防万一,在master创建用户来同步数据时,可以直接使用

CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';

mac docker mysql_Mac操作系统上使用Docker创建MySQL主从数据库相关推荐

  1. 银河麒麟操作系统上安装docker

    查看操作系统版本 #查看麒麟系统对应的linux os cat /proc/version 可以看到输出的内容中有 "Ubuntu1~16.04.10" 字样*,即银河麒麟与Ubu ...

  2. 在阿里云主机的Debian操作系统上安装Docker

    ## 下面命令都是以root用户执行## 查看内核版本 uname -a # Debian 3.2.0-4 x86_64 ## 版本太低了 < 3.8 ## 参照 http://docs.doc ...

  3. linux docker安装_Linux上安装docker的完美教程

    关注程序员的故事,一起用技术改变世界 Docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源.Docker 可以让开发者打包他们的应用以及依赖包 ...

  4. docker搭建mysql主从数据库

    一.docker安装mysql 参考 在服务器上使用docker安装mysql 在服务器上运行两个MySQL容器,一个作为主,另一个作为从,主写从读. 二.配置my.cnf 1.配置主库 首先进入容器 ...

  5. windows mysql 主从_mysql读写分离实战二-windows 上mysql主从数据库搭建及问题总结

    根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程 在windows上安装和linux还是有些不同,不注意就会耽误不 ...

  6. 如何在Linux操作系统上使用Docker打包镜像上传到aliyun镜像仓库?

  7. Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

    说在前面: 现在拿到offer超级难,甚至连面试电话,一个都搞不到. 尼恩的技术社群(50+)中,很多小伙伴凭借 "左手云原生+右手大数据"的绝活,拿到了offer,并且是非常优质 ...

  8. docker显示linux桌面,怎样在桌面上安装 Docker CE?

    按照这些简单的步骤在你的 Linux.Mac 或 Windows 桌面上安装 Docker CE. 在上一篇文章中,我们学习了容器世界的一些基本术语.当我们运行命令并在后续文章中使用其中一些术语时,这 ...

  9. docker打包镜像上传_Jenkins | 一键打包部署Spring Boot 应用的Docker镜像

    一.前言 1.本文主要内容 将在项目中实际使用到的相关东西整理记录一波,同时可以方便其他同学在使用到的时候参考一下(自己也备忘),有不对的地方,欢迎指出~~ Docker部署SpringBoot 项目 ...

最新文章

  1. oracle改表结构,Oracle修改表结构
  2. AutoX无人车完成1亿美元A轮融资,东风汽车领投,阿里旗下基金入股
  3. matlab微分方程组边值,matlab求解常微分方程边值问题的方法
  4. vbs获取cpu使用率
  5. 高级数据结构与算法 | 二叉搜索树(Binary Search Tree)
  6. Lock“锁定”语句(C# 参考)
  7. 使用xshell上传本地文件到服务器
  8. 第一周:深度学习引言(Introduction to Deep Learning)
  9. 手把手教你使用Numpy、Matplotlib、Scipy等5个Python库
  10. mybatis-plus控制台打印SQL
  11. 爱数智慧荣获“阿里云2021年度优秀供应商” | 喜讯
  12. Hexo博客NexT主题美化之新增看板娘(能说话、能换装)
  13. 解决0RA-04031故障
  14. day11--Matplotlib--柱形图与盒图
  15. 帆软报表(多sheet)自定义分页查询
  16. FPGA——三段式状态机(1)
  17. TortoiseSVN简明教程
  18. laravel 上传图片
  19. 微信公众号之渲染静态模板
  20. Reso | 什么是 XML?

热门文章

  1. Tomcat学习总结(19)—— 为什么首选Tomcat作为JavaWeb应用服务器?
  2. Java设计模式学习总结(14)——结构型模式之代理模式
  3. Java基础学习总结(34)——HTTP协议详解
  4. mysql8+新语法_MySQL8.0新特性
  5. 让Salesforce用户管理变得更加容易的几种最佳实践
  6. 23种常用设计模式的UML类图
  7. 媒体查询Media Queries详解
  8. 经常见到的监控摄像机的镜头
  9. javascript 页面刷新
  10. string与wstring互转