Linux 基于Docker安装Mysql5.7以及Mysql8.0并使用volume将数据进行本地挂载保持数据持久化

各位同学大家好,好久没有更新博客了,今天给各位同学带来的内容是通过Docker进行Mysql5.7以及8.0的安装,为什么要写两个版本呢,是因为由于mysql8.0的安全机制的改变,安装过程与5.7有些不同,怕有的同学要使用8.0而安装不上。不过咱们今天还是以5.7安装过程为主,8.0的不同点我会为各位同学列出来,但是不会做过多的解释,好了废话不多说,我们开始进行实战吧。

1.准备工作

首先,我们使用的系统是Centos7.3。
其次,我们是基于docker,肯定需要各位同学安装好Docker的环境并且具备一些docker的基本知识,但是这不是本篇的重点,没有环境的同学可跳转至我之前的博客进行环境搭建 Linux 关于Docker介绍、Linux(Centos7.3)下安装、Docker加速器配置、Docker-compose安装以及基本命令的使用介绍

2.安装mysql5.7

2.1 确认docker环境

首先我们输入命令查看docker环境是否已正常启动,如下图所示

docker info

在这里插入图片描述

2.2 搜索mysql的image镜像
docker search mysql

在这里插入图片描述

2.3 拉取mysql的image镜像并指定拉取版本

默认情况下拉取的是mysql的最新版本,目前默认8.0,但是我们现在是以5.7为例,所以我们现在要指定版本进行拉取,命令如下

docker pull mysql:5.7

在这里插入图片描述

2.4 查看拉取镜像是否已存在
docker images

在这里插入图片描述

好了,mysql的镜像已经拉取下来了,并且版本也是我们想要的5.7版本。

2.5 启动mysql5.7并指定数据存放的本地位置

执行命令如下,命令的解释我会在截图中标识。

# 创建要存放mysql数据的文件夹地址
mkdir /data/mysql
# 启动mysql并指定数据存放位置以及初始密码
docker run -p 3311:3306 --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

在这里插入图片描述

mysql启动成功后如下图所示

在这里插入图片描述
在这里插入图片描述

好了,现在我们的mysql5.7就已经安装完成了。接下来我们要检验一下我们的volume卷是否生效。

3.volume卷检验

3.1 查看挂载路径

我们先查看一下我们刚才在mysql启动时指定的本地路径中是否生成了内容,如下图所示

在这里插入图片描述

我们会发现文件夹中多出了很多关于mysql的内容,这就证明我们的数据已经被挂到本地了,当我们重新创建新的mysql容器的时候只要将本地的地址指向这个地址,我们新的mysql容器就会有之前mysql的所有数据了,这样就再也不怕我们的mysql数据因为容器的销毁而丢失了。

4. 关于mysql8.0

安装mysql8.0的同学会发现执行了
docker run -p 3311:3306 --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
这个命令以后,虽然mysql正常启动了,但是无法远程连接,这里就是因为mysql8.0本身的问题了,和docker无关,以下是解决方案,就不一一给同学们截图了,只要按照对应操作就可以了。

4.1 进入到mysql容器中
# 首先获取对应容器的pid,其中dfc12793d0e1为你的容器的id,每位同学的id肯定是不一样的
docker inspect --format "{{.State.Pid}}" dfc12793d0e1

# 拿到pid后,我们根据pid进入到对应容器内部,其中11260为上一句查出的pid,每位同学肯定也是不一样的,其中nsenter命令的使用是需要安装环境的,自行百度。
nsenter --target 11260 --mount --uts --ipc --net --pid
4.2 设置mysql权限
# 登录mysql
mysql -u root -p 123456

# 登陆后进行授权远程连接
GRANT ALL ON *.* TO 'root'@'%';

# 刷新权限
flush privileges;

#更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

#更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

# 刷新权限
flush privileges;

执行完以上命令,你就会发现你的mysql可以进行远程连接了。

好了,以上就是基于Docker安装Mysql5.7以及Mysql8.0并使用volume将数据进行本地挂载保持数据持久化的全部内容了,希望可以对各位同学有所帮助。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值