Docker 安装mysql8.0

发布时间 2023-10-11 21:24:11作者: Mr_King2020

环境
CentOS 7、MySQL 8、SQLyog 12

需求
在Docker中部署MySQL 8

步骤
1、从docker仓库中拉去mysql 8.0
docker pull mysql:8.0
如果使用 docker pull mysql 默认拉取的是最新版本的mysql

上面我拉去的是8.0的版本,最后拉取过来的是8.0.27

如果有想要指定的版本,可以直接写指定版本,如:

docker pull mysql:8.0.23

2、查看是否拉取成功
docker images mysql:8.0

3、安装运行mysql8.0容器
docker run -p 3307:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
-p 将本地主机的端口映射到docker容器端口

    本机的3306端口已被宿主机的mysql占用,所以使用3307。

    也可以使用3306,就不可以和宿主机的mysql同时启动了。

    这里使用什么端口映射可以自己决定,但是不要和我们使用的其他端口重复。

--name 容器名称

-e 配置信息,配置root密码,等号后面跟的是密码,可以自己设置自己想要的密码

-d 镜像名称

4、查看mysql 8.0 容器是否运行
docker ps

5、docker登录mysql 8.0
docker exec -it mysql8.0 bash

mysql -uroot -p
回车,输入密码,在回车

6、使用图形化界面连接docker中的MySQL 8.0

点击连接之后,发现会报错:

报错:不支持caching_sha_password加密方式

原因:mysql8.0使用新的密码加密方式:caching_sha_password

解决方案
修改成旧的加密方式(mysql_native_password),并重置密码

步骤
show databases;

use mysql;

select host,user,plugin from user;

alter user 'root'@'%' identified with mysql_native_password by '123456';
分号前面单引号里面的内容就是新密码,可以设置自己想要的密码,也可以与原密码一样。
我的就用123456了,因为我的5.7的mysql也是123456,方便记忆

然后再重新连接,版本是