使用docker配置mysql主从复制

MySQL的主从复制之前也没做过,刚百度了下发现并不算难,但同时开两个虚机挺麻烦,于是我就想到了使用docker来配置MySQL主从复制。

环境:docker,centos,MySQL镜像,这里我直接pull了一个镜像

运行一个master容器
docker run -d --name master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql
docker ps -a

这里将master容器的3306端口映射给主机的3307端口,-e代表设置环境变量master的MySQL密码为root,-d代表让容器后台运行,使用docker ps -a查看所有的容器

进入master容器,修改master配置

docker exec -it 98d /bin/bash 

创建master的复制账号

grant replication slave on *.* to ‘wanger‘@‘%‘ identified by ‘wanger‘;
flush privileges;

修改master配置,开启二进制日志,设置server-id,server-id值唯一

配置完成后重启容器,进入MySQL

Show master status;

查看二进制文件名与位置,这个值要记住,在从容器上会用到

到这里master容器配置完成,接下来运行一个slave容器

Docker run -d –name slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root  mysql

进入slave容器,修改slave的配置

开启二进制日志,设置server-id,配置完成后重启服务

打开MySQL会话,执行同步sql语句,同步master账号信息

使用show slave status\G;查看slave的状态,可以看到主从同步设置成功了

在配置主从复制的时候出了点小问题,Slave_Io_Running一直处于connecting状态,配置信息看着没错,就以为是网络问题,就去ping master容器,后来发现我ping的一直是slave的容器,那我的配置信息的IP自然也是slave的IP了,后来改了IP果断yes。

开始测试主从复制

我在master上创建了一个名为wanger的数据库,在slave可以查看到此数据库的存在



欢迎各位关注我的微信公众号“没有故事的陈师傅”

原文地址:https://blog.51cto.com/12970189/2416515

时间: 2024-10-29 12:11:28

使用docker配置mysql主从复制的相关文章

基于Docker的MySQL主从复制搭建及原理

为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --

配置MySQL主从复制报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work

配置MySQL主从复制报错 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this do

基于Docker搭建MySQL主从复制

摘要: 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建.根据网上教程走还是踩了一些坑,不过所幸最终搭建成功,因此记录下来,避免以后踩了重复的坑. 搭建环境 Centos 7.2 64位 MySQL 5.7.13 Docker 1.13

基于 Docker 搭建 MySQL 主从复制

本篇博文相对简单,因为是初次使用Docker,MySQL的主从复制之前也在Centos环境下搭建过,但是也忘的也差不多了,因此本次尝试在Docker中搭建. 根据网上教程走还是踩了一些坑,不过所幸最终搭建成功,因此记录下来,避免以后踩了重复的坑. 搭建环境 Centos 7.2 64位 MySQL 5.7.13 Docker 1.13.1 接下来,我们将会在一台服务器上安装docker,并使用docker运行三个MySQL容器,分别为一主两从. 安装docker 执行命令 如果有提示,一路y下去

Docker实现MySQL主从复制(主主复制同理)

因为最近在学习MySQL,看到很多地方有"分库分表","读写分离"的字眼,就想尝试一下吧! 首先,因为本人经济能力有限,买不起那么多服务器,所以就借用Docker来搭建虚拟机来作为两台服务器. 一.准备主从服务器 1.创建主服务器 $docker run -it --name=mysql_master ubuntu:14.04 /bin/bash 2.创建从服务器 $docker run -it --name=mysql_slave ubuntu:14.04 /bi

基于Docker的Mysql主从复制搭建

为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --

使用docker部署mysql主从复制集群

一.环境搭建 虚拟机环境:centos7 IP:192.168.37.134 用户名:root 密码:123 启动3个容器,一个是master,端口是3307,另外两个是slaver,端口是3308和3309 docker pull mysql:5.7 docker run -p 3307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7 docker run -p 3308:3306 --name mysql-sl

配置MySQL主从复制

说明 MySQL版本为5.6.26 安装MySQL步骤就省略了. MySQL主从复制注意点 1.在master端要启用binlog日志.slave端不用启用binlog日志 2.master和slave的server-id要不一样 主从my.cnf配置的区别 不列出server-id了,设置不同即可.主要是[mysqld]区域的 不同 master log-bin                         =/data/mysql_log/mysql-bin expire-logs-day

基于Docker的Mysql主从复制搭建(线下/线上)

利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 然后使用此镜像启动容器,这里需要分别启动主从两个容器 Master(主): docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 Slave(从): docker run -p 3340:3306 --name mymysql1 -e MYSQL_R