docker怎么创建mysql服务(Docker部署MySQL8集群一主二从的实现步骤)
docker怎么创建mysql服务
Docker部署MySQL8集群一主二从的实现步骤目录
- 一.CentOS7.9安装Docker20
- 二.部署MySQL集群(一主二从)
- 三.结果
1.安装yum-utils工具
yum install -y yum-utils
2.设置docker的依赖源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
注释:CentOS直接使用yum命令安装的Docker版本为1.13.1属于旧版docker的最后一个版本,所以需要配置一个repo,才能安装新版的Docker-CE(社区版)。Docker-EE(企业版)需收费读者自行了解即可,这里使用CE社区版
3.安装docker
yum -y install docker-ce
4.查看安装的版本
docker -v docker version
5. 查看配套设置的版本
yum list installed | grep docker
6.拉取MySQL8镜像
docker pull mysql:8
注解:mysql:5.7代表mysql版本为5.7
查看docker镜像
docker images
1.创建主从MySQL的配置及数据文件的存储目录
# 创建主服务的配置目录和数据目录 mkdir -p /usr/local/mysqlData/master/cnf mkdir -p /usr/local/mysqlData/master/data # 创建1号从服务器的配置目录和数据目录 mkdir -p /usr/local/mysqlData/slave/cnf mkdir -p /usr/local/mysqlData/slave/data # 创建2号从服务器的配置目录和数据目录 mkdir -p /usr/local/mysqlData/slave2/cnf mkdir -p /usr/local/mysqlData/slave2/data
创建两个从服务器的配置是因为MySQL配置的server-id不能重复
2.配置主服务器的配置文件
vim /usr/local/mysqlData/master/cnf/mysql.cnf
配置文件如下
[mysqld] ## 设置server_id,注意要唯一 server-id=1 ## 开启binlog log-bin=mysql-bin ## binlog缓存 binlog_cache_size=1M ## binlog格式(mixed、statement、row,默认格式是statement) binlog_format=mixed ##设置字符编码为utf8mb4 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4
3.配置从服务器的配置文件
# 1号从服务器 vim /usr/local/mysqlData/slave/cnf/mysql.cnf # 2号从服务器 vim /usr/local/mysqlData/slave2/cnf/mysql.cnf
配置文件如下(1号的server-id设置为2,2号的server-id设置为3,不重复即可)
[mysqld] ## 设置server_id,注意要唯一 server-id=2 ## 开启binlog log-bin=mysql-slave-bin ## relay_log配置中继日志 relay_log=edu-mysql-relay-bin ## 如果需要同步函数或者存储过程 log_bin_trust_function_creators=true ## binlog缓存 binlog_cache_size=1M ## binlog格式(mixed、statement、row,默认格式是statement) binlog_format=mixed ##设置字符编码为utf8mb4 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' slave_skip_errors=1062 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4
4.创建主从MySQL镜像
# 主服务器实例化 docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8 # 1号从服务器实例化 docker run -itd -p 3308:3306 --name slaver -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8 # 2号从服务器实例化 docker run -itd -p 3309:3306 --name slaver2 -v /usr/local/mysqlData/slave2/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
参数解释
-p 指定容器暴露的端口,宿主机(物理机)端口: docker实例端口
-p 3307:3306 把物理机的3307端口给实例的端口3306端口进行映射
-v 给容器挂载存储卷,挂载到容器的某个目录
-v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d 把刚创建的配置文件夹映射成实例的/etc/mysql/conf.d
-v /usr/local/mysqlData/master/data:/var/lib/mysql 数据文件夹的映射
-e 指定环境变量,容器中可以使用该环境变量
-e MYSQL_ROOT_PASSWORD=123456 设置MySQL的root账号密码为123456
5.查看已创建的实例
docker ps -a
6.创建mysql连接用户
# 创建用户 reader设置密码为reader CREATE USER reader IDENTIFIED BY 'reader'; # 给予reader同步权限 GRANT REPLICATION SLAVE ON *.* to 'reader'@'%'; FLUSH PRIVILEGES;
注解:其余的用户,远程连接的自行设置
7.获取主服务器的连接信息
# MySQL的连接信息 SHOW MASTER STATUS; #新开连接 获取master实例的在docker的地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' master
从服务器连接主服务器(两台从服务器均是以下操作)
# 配置连接的参数 change master to master_host='172.17.0.2',master_user='reader',master_password='reader',master_log_file='mysql-bin.000003',master_log_pos=2259; # 启动同步 start slave; # 查看是否成功 show slave status\G # 两项都为Yes时代表成功。 # Slave_IO_Running: Yes # Slave_SQL_Running: Yes # 失败需要使用停止连接后检查其他账号密码,地址,pos等参数 # 停止连接,如果一次成功无需使用该命令 stop slave;
主服务器执行命令
SHOW SLAVE HOSTS;
能从主服务器查询到两台从服务器的ID以及端口。完成MySQL部署。
到此这篇关于Docker部署MySQL8集群(一主二从)的实现步骤的文章就介绍到这了,更多相关Docker部署MySQL8集群内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker 各种用法(详解Docker commit的使用)
- docker 容器端口查不到(docker容器无法访问宿主机端口的解决)
- dockerpull的镜像位置(解决docker pull镜像报错的问题)
- 如何打开docker容器端口号(Docker容器网络端口配置过程详解)
- docker容器编排入门教程(简简单单使用Docker部署Confluence)
- docker怎样安装mysql8(docker-compose安装db2数据库操作)
- docker开源软件(5款超好用的开源 Docker工具强烈推荐)
- dockernginx怎么设置容器(docker nginx + https 子域名配置详细教程)
- idea 启动docker容器不重新打包(Docker遇到Intellij IDEA,Java开发提升了十倍生产力)
- docker查看某个容器状态(docker 移除掉运行不正常的container操作)
- docker容器启动执行脚本(在docker容器中使用非root用户执行脚本操作)
- docker进入mysql查看路径(Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法)
- docker获取自己的容器id(docker 如何添加证书)
- docker镜像配置教程(给Docker更换国内镜像源操作)
- dockermysql实例(docker 连接宿主Mysql操作)
- dockerregistry原理(解决Docker x509 insecure registry的问题)
- 观花盆栽佛肚竹盆景制作及养护(观花盆栽佛肚竹盆景制作及养护)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
- 刘智泰确认出演《Good Wife》 担纲男一号(刘智泰确认出演Good)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
- 汉族(汉族的祖先是谁)
热门推荐
- css垂直居中16个方法(css实现元素垂直居中的常用方法总结)
- html5最好用语义元素(HTML5语义化元素你真的用对了吗)
- mysql主从同步失败原因(mysql 主从复制如何跳过报错)
- php各种绕过姿势(php面试实现反射注入的详细方法)
- docker镜像重启数据丢失(Docker数据备份恢复实现过程详解)
- 云服务器9兆带宽的上传速度是多少(云服务器网速多少怎么计算?云服务器的1兆带宽是多少的?)
- docker-compose 如何启动(docker compose部署主从复制的实现)
- 如何设置nginx使用ip访问(nginx基于域名,端口,不同IP的虚拟主机设置的实现)
- dedecms本地搭建(DEDECMS图文分离存放在另一个服务器实现方法)
- https服务器怎么打开(网站服务器配置是选HTTP还是HTTPS?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9