【docker】部署MySQL-拉取centos/mysql-57-centos7镜像、新建容器并启动

docker部署MySQL-拉取centos/mysql-57-centos7镜像、新建容器并启动

拉取centos/mysql-57-centos7镜像

docker pull centos/mysql-57-centos7

在这里插入图片描述

新建容器并启动

因为容器的名称写错了,又pull了一个mysql镜像

docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

容器名称:–name=tensquare_mysql
容器端口映射:-p 3306:3306(左边是docker内部,右边是宿主机)
mysql的密码:-e MYSQL_ROOT_PASSWORD
最后一个是相应的镜像:这里顺手打了mysql,就又给我拉了一个镜像
在这里插入图片描述
查看容器是否存在:

docker ps

在这里插入图片描述
然后我用Navicat Premium 12连接MySQL数据库出现Authentication plugin ‘caching_sha2_password’ cannot be loaded的问题。
出现这个问题的原因是:docker拉取的mysql的最新版本是8.0.19。MySQL8.0采用了新的更安全的验证方式,也就是采用’caching_sha2_password’加密,而Navicat Premium 12用的是’mysql_native_password’。
所以要么更新Navicat Premium 12,要么修改mysql的加密规则
这里是选择了修改mysql的加密规则:
首先
进入docker内的mysql:

docker exec -ti  tensquare_mysql mysql -u root -p

修改加密规则和密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '88888888'

在这里插入图片描述
这里修改成功后,发现Navicat Premium 12还是连不上,一样的错误
后来又百度了别的解决方法

//修改加密规则 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;   
//更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';   
//刷新权限
FLUSH PRIVILEGES; 
//重置密码
alter user 'root'@'localhost' identified by '88888888';

还是不行。我还重启了容器,还是不行!

docker stop tensquare_mysql
docker start tensquare_mysql

然后我就怀疑自己的加密方法有没有改对,果然!!

select user,host,plugin from user;

直接输这句会报

ERROR 1046 (3D000): No database selected

所以要先选择mysql自己的数据库

user mysql

坑如图:
在这里插入图片描述
改的不是要连的那个root,害,大费周章

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '88888888';

最后连接成功啦!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值