docker创建MySQL镜像,搭建主从复制环境

这篇具有很好参考价值的文章主要介绍了docker创建MySQL镜像,搭建主从复制环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

学习黑马的MySQL时,在主从复制、分库分表、读写分离等阶段需要多台服务器,于是尝试用docker创建镜像搭建主从复制环境。
本文基于centos7搭建mysql镜像。
参考大佬文章: link


一、编写Dockerfile制作mysql镜像

编写Dockerfile文件

编写mysql_file文件:

由于需要进行编辑操作,所以需要额外下载vim

FROM centos:7
RUN yum localinstall -y https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
RUN yum install -y yum-utils
RUN yum install -y vim
RUN sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/mysql-community.repo && sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/mysql-community-source.repo
RUN yum install -y mysql-server mysql mysql-devel
COPY run.sh /run.sh
RUN chmod 777 /run.sh && /run.sh
EXPOSE 3386
CMD ["mysqld","--user=root"]

编写run.sh文件

#! /bin/bash
rm -rf /var/lib/mysql
mysqld --initialize-insecure
chown -R mysql:mysql /var/lib/mysql
mysqld --user root &
sleep 5
mysqladmin -u root password 123457

build MySQL镜像

docker build -f ./mysql_file -t mybuildsql .

以特权模式运行镜像

docker run -d --name mysql1 --privileged=true mybuildsql /usr/sbin/init

进入容器

docker exec -it mysql1 /bin/bash

在镜像中启动MySQL

mysql -uroot -p123456

至此centos7+MySQL镜像搭建完成,可以使用ifconfig查看ip地址

二、MySQL主从复制搭建

此步骤具体操作可以查看黑马MySQL视频

1、主库配置

主库使用宿主机,从库使用上述创建的MySQL镜像。

关闭防火墙

首先关闭服务器防火墙或者开放3306端口,本文采用关闭服务器防火墙。

systemctl stop firewalld

修改配置文件

在etc/my.cnf中增加以下语句

server-id=1
read-only=0

重启MySQL

systemctl restart mysqld

登录MySQL创建远程连接账号

mysql -uroot -p
flush privileges;
create user 'itcast'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

查看二进制日志坐标

此坐标在配置从库时需要

show master status;

制作mysql镜像,centos,linux,docker

2、从库配置

进入上述创建的MySQL镜像,并启动MySQL

修改配置文件

在etc/my.cnf中增加以下语句

server-id=2
read-only=1

重启MySQL服务

systemctl restart mysqld

进入MySQL设置配置

change replication source to source_host='**.**.**.**',source_user='itcast',source_log_file='mysql-bin.000008',source_log_pos=723;

source_host为主库所在服务器的ip,source_log_file与source_log_pos为之前在主库中查询的二进制日志得到相关信息。

开启同步

start replica;

查看主从同步状态

show replica status;

制作mysql镜像,centos,linux,docker
配置成功


三、测试

1、主库数据库状态

show databases;

制作mysql镜像,centos,linux,docker

2、从库数据库状态

show databases;

制作mysql镜像,centos,linux,docker
开始时主库、从库均只有MySQL的初始数据库。

3、测试

主库创建数据库

create database db01;
use db01;
create table tb_user(
-> id int(11) primary key not null auto_increment,
-> name varchar(50) not null,
-> sex varchar(1)
-> )engine=innodb default charset=utf8mb4;
insert into tb_user values(1,'Tom','1'),(2,'Trigger','0'),(3,'Dawn','1');

主库创建数据库并插入数据,从库的数据库同步。

从库查询数据

制作mysql镜像,centos,linux,docker
从库中数据已同步,同理在主库中修改数据,在从库中也会进行同步,至此数据库的主从复制环境成功搭建。文章来源地址https://www.toymoban.com/news/detail-730428.html

到了这里,关于docker创建MySQL镜像,搭建主从复制环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器离线部署docker,镜像迁移,mysql主从搭建等服务

    公司项目要上线项目,买了两台云服务器,需进行环境部署(1台接入公网,一台只能局域网访问),主要部署以下内容 1、服务器之间配置ssh免密 2、离线docker部署 3、docker镜像迁移 4、redis服务 5、minio文件服务 6、kkFileView文件预览服务 7、mysql主从搭建 目录 1、配置两台服务器

    2024年02月04日
    浏览(44)
  • Redis最新版本搭建主从环境,Redis主从复制环境搭建

    一般网站搭建都会使用Redis做缓存,当单台Redis承受不住压力时,会考虑搭建Redis主从。在没有业务的情况下,一般不会一下子上来就去搭建Redis无中心集群 Redis主从复制环境搭建 ,前面跟部署单台Redis一致,只不过后面 是从Redis的配置上去同步主Redis即可 。 这里找三台虚拟机

    2024年01月21日
    浏览(38)
  • 【环境搭建】Docker镜像相关操作(切换镜像源、查询、获取、查看、创建、上传、保存、删除等)

    docker默认镜像源位于国外,下载速度较慢,建议修改配置文件daemon.json,若无则新建。 使用命令查看镜像源: cat /etc/docker/daemon.json ,如果没有该文件或没有配置,则镜像源位于国外。 建议修改配置文件修改镜像源为国内,使用命令 vim /etc/docker/daemon.json 打开文件进行修改。

    2024年02月05日
    浏览(44)
  • MySQL主从复制环境部署

    通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制的这一过程叫做主从复制。 通过主从复制可以实现后续的读写分离,部署高可用架构等打下基础。 在进行同步前,最好使两边数据库内容保持一致、版本号尽量一致、操作系统

    2024年02月15日
    浏览(40)
  • 简单搭建MySQL主从复制

    个人认为,90%的公司的数据体量和并发量压根用不上从服务器,结合Redis,一台性能强劲的云MySQL服务器,做好日常备份。足够了。 一个MySQL主(Master)服务器上的数据自动复制到至少一个的MySQL从(Slave)服务器的过程,利用bin log,主服务器上的数据更改会被自动地同步到从

    2024年03月09日
    浏览(51)
  • Docker mysql 主从复制

    目录 介绍:为什么需要进行mysql的主从复制 主从复制原理: ✨主从环境搭建 主从一般面试问题: 介绍:为什么需要进行mysql的主从复制 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用 「主从复制」 。 比如:在复杂的业务系统中,有

    2024年01月17日
    浏览(38)
  • mysql 数据库主从复制搭建

    MySQL 主从复制主要用于实现高可用性和备份。在主从复制中,一个 MySQL 实例(称为主节点)将其数据更改复制到至少一个其他 MySQL 实例(称为从节点)上。主要借助于数据库二进制日志binlog进行数据的复制。 主从数据库对应的操作系统、数据库版本要一致。 1、主库配置 设

    2024年02月20日
    浏览(56)
  • mysql主从复制搭建(一主一从)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 介绍 MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后解析日志

    2024年02月12日
    浏览(48)
  • docker实现mysql 主从复制

                                                                   💧记录一下如何在Docker中启动两个MySQL容器来进行主从复制💧           🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的

    2023年04月11日
    浏览(42)
  • docker高级(mysql主从复制)

    数据库密码需要设置成自己的!!! 1、创建容器master13307 2、进入/mysql/mysql-master/conf目录下新建my.cnf 复制下面,保存 3、修改完配置后重启master实例 4、进入mysql-master容器 5、在主数据库中查看主从同步状态 6、新建从服务器容器实例mysql-slave 13308 7、重启slave 8、在从数据库s

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包