【Docker】通过Docker部署MySQL8

13 篇文章 0 订阅

1. 我们先到Docker Hub中找到自己需要的MySQL镜像,一般来说都会选择官方提供的镜像
在这里插入图片描述
通过复制红框中的内容在PowerShell中粘贴即可下载Docker镜像

2. 镜像文件下载完毕后先启动镜像查看后台输出是否正常

Windows
docker run -p 3806:3306 \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d mysql:8.0 \
--restart=always
Linux
sudo docker run -p 3806:3306 \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d mysql:8.0 \
--restart=always

3. 镜像启动之后就可以设置挂载文件目录,并将镜像中的配置文件拷贝到宿主机中

Windows
sudo docker cp \
mysql8:/var/lib/mysql D:\software\Docker\data\mysql8\data
sudo docker cp \
mysql8:/etc/mysql D:\software\Docker\data\mysql8\config
Linux
sudo docker cp \
mysql8:/var/lib/mysql /home/yzh/Documents/Installed/docker/docker_repo/mysql8/data
sudo docker cp \
mysql8:/etc/mysql /home/yzh/Documents/Installed/docker/docker_repo/mysql8/config

4. 配置文件下载完成后可以对启动的cnf文件编写调优内容顺便将调优给做了

Windows

在这里插入图片描述
在Windows系统下直接修改my.cnf文件并在[mysqld]区域添加优化内容
在这里插入图片描述
之后保存即可

Linux

Linux的情况下通过vim做配置文件的修改如下:

sudo vim \
/home/yzh/Documents/Installed/docker/docker_repo/mysql8/config/conf.d/mysql.cnf

在mysql.cnf中添加如下信息
在这里插入图片描述
之后保存即可

5. 启动验证

Windows
docker run -p 3806:3306 \
-v D:\software\Docker\data\mysql8\data\mysql:/var/lib/mysql \
-v D:\software\Docker\data\mysql8\config\mysql:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d mysql:8.0 \ 
--restart=always
Linux
sudo docker run -p 3806:3306 \
-v /home/yzh/Documents/Installed/docker/docker_repo/mysql8/data:/var/lib/mysql \
-v /home/yzh/Documents/Installed/docker/docker_repo/mysql8/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d mysql:8.0 \
--restart=always
Mac
docker run -p 3806:3306 \
-v /Users/yuanzhenhui/Documents/docker_data/mysql8/data:/var/lib/mysql \
-v /Users/yuanzhenhui/Documents/docker_data/mysql8/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d mysql:8.0 \
--restart=always

Docker的启动语句就不再做过多的解释了,两个语句是等效的。如无意外在CLI中看到的Log输出是这样的:
在这里插入图片描述
6. MySQL账号使用及遇到难题

在MySQL8.0版本里面已经没有办法直接给root用户进行授权,因此只能够通过新建一个用户之后再对这个用户进行授权
在这里插入图片描述
因此只能够创建一个新的来了,如下代码

CREATE USER 'yzh'@'%' IDENTIFIED BY '0623';
GRANT ALL PRIVILEGES ON *.* TO 'yzh'@'%' WITH GRANT OPTION;

此外,通过MySQL官方提供的MySQL Workbench软件旧版本是无法登陆MySQL8的,原因在于MySQL8的连接方式已经发生改变,因此如果出现宿主机无法对服务器进行连接,可以尝试更新一下客户端再进行连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kida 的技术小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值