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的连接方式已经发生改变,因此如果出现宿主机无法对服务器进行连接,可以尝试更新一下客户端再进行连接。