返回顶部
首页 > 资讯 > 数据库 >docker创建MySQL镜像,搭建主从复制环境
  • 403
分享到

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

centoslinuxdocker 2023-09-28 15:09:07 403人浏览 独家记忆
摘要

Docker创建Mysql镜像,搭建主从复制环境 前言一、编写Dockerfile制作mysql镜像编写Dockerfile文件编写mysql_file文件:编写run.sh文件build M

Docker创建Mysql镜像,搭建主从复制环境


前言

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


一、编写Dockerfile制作mysql镜像

编写Dockerfile文件

编写mysql_file文件:

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

FROM centos:7RUN yum localinstall -y https://repo.mysql.com//mysql80-commUnity-release-el7-1.noarch.rpmRUN yum install -y yum-utilsRUN yum install -y vimRUN 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.repoRUN yum install -y mysql-server mysql mysql-develCOPY run.sh /run.shRUN chmod 777 /run.sh && /run.shEXPOSE 3386CMD ["mysqld","--user=root"]

编写run.sh文件

#! /bin/bashrm -rf /var/lib/mysqlmysqld --initialize-insecurechown -R mysql:mysql /var/lib/mysqlmysqld --user root &sleep 5mysqladmin -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=1read-only=0

重启MySQL

systemctl restart mysqld

登录MySQL创建远程连接账号

mysql -uroot -pflush privileges;create user 'itcast'@'%';GRANT REPLICATioN SLAVE ON *.* TO 'itcast'@'%';

查看二进制日志坐标

此坐标在配置从库时需要

show master status;

在这里插入图片描述

2、从库配置

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

修改配置文件

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

server-id=2read-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;

在这里插入图片描述
配置成功


三、测试

1、主库数据库状态

show databases;

在这里插入图片描述

2、从库数据库状态

show databases;

在这里插入图片描述
开始时主库、从库均只有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');

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

从库查询数据

在这里插入图片描述
从库中数据已同步,同理在主库中修改数据,在从库中也会进行同步,至此数据库的主从复制环境成功搭建。

来源地址:https://blog.csdn.net/qq_45248909/article/details/130008108

您可能感兴趣的文档:

--结束END--

本文标题: docker创建MySQL镜像,搭建主从复制环境

本文链接: https://www.lsjlt.com/news/420218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作