使用过mysql8的应该都知道,升级后的mysql加密方式由之前的“mysql_native_password”改成了“caching_sha2_password”,但是由于我们一些工具或者驱动包没有升级,导致无法连接,那么就需要修改mysql8默认的加密方式。
这里使用docker的方式启动mysql8修改默认加密方式,直接安装mysql8修改类似。这里大概有这么几种方式:docker启动命令中添加额外参数、mysql启动后使用sql修改、启动前挂载修改好的配置文件…
方法一
启动前挂载修改好的配置文件,这里需要注意一下,一定要在docker容器启动之前,下载一份对应版本的my.cnf修改好,启动时进行挂载。如果是启动后然后修改配置文件然后重启docker容器是不生效的。
注:每个版本可能配置文件具体位置有差异,根据自己的版本来修改,我本次使用的8.0.27版本,配置文件位于“/etc/mysql”目录下
首先我们找到一份my.cnf文件,可以官网下载,也可以从别人哪里copy,这里也有一个小技巧可以获取到这个文件。你先docker run启动mysql容器,然后将容器中的配置文件copy出来,然后再把这个没用的容器销毁掉就行了。
在my.cnf文件的[mysqld]配置下添加如下配置:
default-authentication-plugin=mysql_native_password
修改好之后启动容器并挂载好配置文件即可:
# 相关信息修改为自己的即可
docker run -d --name mysql -p 3306:3306 -v /opt/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql
启动之后然后连接进行查看:
use mysql;
select host,user,plugin from user;
方法二
启动容器时启动命令添加参数
# 添加如下参数
--default-authentication-plugin=mysql_native_password
# 完整命令如下
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --default-authentication-plugin=mysql_native_password
启动后验证即可。
方法三
启动容器之后使用sql进行修改
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
修改文章来源:https://www.toymoban.com/news/detail-484143.html
# 进入容器
docker exec -it ******* bash
# 登陆mysql
mysql -u root -p
use mysql;
# 设置用户root密码策略为"mysql_native_password"
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql';
# 刷新使之前操作立刻生效
flush privileges;
文章来源地址https://www.toymoban.com/news/detail-484143.html
到了这里,关于Docker中修改mysql8默认机密方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!