环境
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,方便记忆
然后再重新连接,版本是
版权归原作者 爱Java更爱头发 所有, 如有侵权,请联系我们删除。