一、docker安装mysql

参考 在服务器上使用docker安装mysql
在服务器上运行两个MySQL容器,一个作为主,另一个作为从,主写从读。

二、配置my.cnf

1.配置主库

首先进入容器内部,操作如下:

docker exec -it aiden-mysql /bin/bash

然后修改MySQL配置文件,

cd /etc/mysql
vi my.cnf

执行vi命令会报错,需要在docker容器内部自行安装vim,

apt-get update
apt-get install vim

在my.cnf中添加如下配置:

[mysqld]
# 服务的唯一编号
server-id=1
# 开启mysql binlog功能
log-bin=mysql-bin

配置完成之后,需要重启docker容器

docker restart aiden-mysql

2.配置从库

与配置主库一样,配置从库需要在my.cnf文件中添加如下配置:

[mysqld]
# 服务的唯一编号
server-id=2
# 开启mysql binlog功能
log-bin=mysql-slave-bin
# relay_log配置中继日志
relay_log=edu-mysql-relay-bin

配置完成后也需要重启docker容器。

三、链接主库和从库

1.主库操作:

首先需要在主库创建数据同步用户,授予用户 REPLICATION SLAVE和REPLICATION CLIENT权限,用于在主从库之间同步数据。

docker exec -it aiden-mysql /bin/bash
mysql -uroot -p
create user 'slave'@'%' identified by '178-123';
grant replication slave,replication client on *.* to 'slave'@'%';
flush privileges;

如需开启远程访问权限,参考在服务器上使用docker安装mysql。

然后在主数据库,执行show master status;语句,结果如下:

File和Position字段的值后面会用到,在从库操作完成之前,需要保证主库不能做任何操作,否则会引起状态变化。

2.从库操作:

change master to master_host='123.123.0.1',master_user='slave',master_password='178-123',master_post=3306,master_log_file='mysql-bin.000001',master_log_pos=3010,master_connect_retry=30;

命令说明
master_host:主库地址
master_port:主库端口号
master_user:主库用于数据同步的用户
master_password:用于数据同步的用户的密码
master_log_file:指定从库从主库的哪个日志文件开始复制数据,即上图中的File字段的值
master_log_pos:指定从日志文件的哪个位置开始读,即上图中的Position字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认值60秒

在从库终端执行 show slave status\G;查看主从同步状态。
执行start slave;之前,SlaveIORunningSlaveSQLRunning都是No,因为我们还没有开启主从复制过程。执行start slave;开启主从复制过程,再次执行show slave status\G;SlaveIORunningSlaveSQLRunning都是Yes,说明主从复制已开启。

如果开始主从复制过程后,SlaveIORunning一直是Connecting,则说明主从复制一直处于连接状态,可以根据show slave status\G;返回的Last_IO_Error提示予以解决。

3.验证

在主库新建一个数据库,检查从库是否存在此数据库。

四、Mysql是如何复制数据的

参开《高性能MySQL》,复制有三个步骤:

  1. 在主库上把数据更改记录到二进制日志(Binary Log)中(这些记录被称为二进制日志事件)。
  2. 备库将主库上的日志复制到自己的中继日志(Relay Log)中。
  3. 备库读取中继日志中的事件,将其重放到备库数据之上。

docker搭建mysql主从数据库相关推荐

  1. docker搭建mysql主从

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

  2. mac docker mysql_Mac操作系统上使用Docker创建MySQL主从数据库

    拉取MySQL镜像 ## 下载最新版本的MySQL镜像 docker pull mysql 创建两个主从MySQL数据库容器 第一步,需要创建一个目录,用来存放与容器中配置文件对应的物理地址 目录结构 ...

  3. mysql主从docker_(学习到实践)四、docker搭建mysql主从实践

    前言 目前已完成:php7及扩展.redis5的Dockerfile测试版编写,稍许完善后同步上传到github,(记下这里memcached还没有剥离安装). 今天数据库,编程的一个重要原则是不要重 ...

  4. centos7搭建 mysql 主从数据库

    我搭建主从数据库参考的是(本文也是参考)https://blog.csdn.net/cn_yaojin/article/details/78711184 首先在两个服务器安装好版本一致的mysql(个 ...

  5. Docker - Docker中搭建MySQL主从

    1.pull完centos7纯净版的镜像后,创建容器,然后将宿主机上下载的MySQL文件 (MySQL下载地址:http://mysql.mirror.kangaroot.net/Downloads/ ...

  6. docker下mysql主从搭建

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

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

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

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

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

  9. 高可用MySql主从数据库

    一.mysql主从复制原理 1.主从复制原理 从上层来看,复制分成三步: Master主库在事务提交时,会把数据变更作为时间Events记录在二进制日志文件 Binlog 中. 主库推送二进制日志文件 ...

最新文章

  1. 让Hive支持行级insert、update、delete
  2. php正则替换imgsrc_php如何替换img中src内容
  3. c#语言中代替指针,如何在C#中使指针通用?
  4. 保持图片和图片框一致的方法 收藏
  5. 反射、HashMap、ArrayList与LinkedList区别
  6. linux家用系统版本,查看linux系统版本
  7. mybatis源码分析执行流程
  8. es分页查询重复数据_ES优化 - 巨量数据如何提高查询性能
  9. Advanced User Administration
  10. 【Linux安全】chattr命令锁定账户敏感文件
  11. visio中使用连接线连接形状
  12. mysql 上周时间_mysql 获取上周1到周日的时间
  13. Android studio Installed Build Tools revision 31.0.0 is corrupted. Remove and install again
  14. mysql 数据库切分_mysql数据库切分
  15. html 图片透明字不透明,CSS实现背景图片透明,文字不透明效果的两种方法
  16. 怎么给电脑重装Nvidia显卡驱动?
  17. 物联网传感技术-----无线传感网概述
  18. week8—多线程下载多个网页文件
  19. 深度揭秘高频交易盈利方式
  20. C语言入门:立体几何计算题

热门文章

  1. 易百教程Oracle,SQLite快速入门教程
  2. 诚意满满,准备跳槽和应届生必备JAVA面试知识点!
  3. 22.10.27补卡 CF-279B
  4. 卷积神经网络算法三大类,卷积神经网络算法实现
  5. 人工智能商业应用,并介绍详细公司案列
  6. Django之路由层
  7. Office EXCEL 表格如何设置某个单元格是选择项,如何设置二级下拉菜单 WPS版
  8. 利用DEM数据实现三维地形高程图制作
  9. [论文笔记] Chubby 分布式锁服务
  10. 2020我的秋招总结帖 [数据分析岗] | 面经集合