Docker中如何修改mysql8默认加密方式

 更新时间:2023年06月13日 10:30:58   作者:GreaterBuilder  
这篇文章主要给大家介绍了关于Docker中如何修改mysql8默认加密方式的相关资料,文中大概介绍了docker启动命令中添加额外参数、mysql启动后使用sql修改以及启动前挂载修改好的配置文件等方法,需要的朋友可以参考下

前言

使用过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

修改

# 进入容器
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;

总结 

到此这篇关于Docker中如何修改mysql8默认加密方式的文章就介绍到这了,更多相关Docker修改mysql8默认加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中的行级锁、表级锁、页级锁

    MySQL中的行级锁、表级锁、页级锁

    这篇文章主要介绍了MySQL中的行级锁、表级锁、页级锁,以及分享了多种避免死锁的方法,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 关于InnoDB索引的底层实现和实际效果

    关于InnoDB索引的底层实现和实际效果

    这篇文章主要介绍了关于InnoDB索引的底层实现和实际效果,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 安装rpm包时提示错误:依赖检测失败的解决方法

    安装rpm包时提示错误:依赖检测失败的解决方法

    今天在虚拟机中装MySQL的时候,突然出现了这个依赖检测错误,下面这篇文章主要给大家介绍了关于安装rpm包时提示错误:依赖检测失败的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • mysql 截取指定的两个字符串之间的内容

    mysql 截取指定的两个字符串之间的内容

    今天我同事在用mysql的时候,需要对一个字符串中的指定内容进行截取
    2009-07-07
  • MySQL中find_in_set()函数用法示例详解

    MySQL中find_in_set()函数用法示例详解

    find_in_set这个是mysql的一个函数,见得比较少,下面这篇文章主要给大家介绍了关于MySQL中find_in_set()函数用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Window环境下MySQL UDF提权

    Window环境下MySQL UDF提权

    本文章仅记录某次内网渗透过程中遇到的MySQL 采用UDF提权等方式进行获取权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2023-03-03
  • 几个缩减MySQL以节省磁盘空间的建议

    几个缩减MySQL以节省磁盘空间的建议

    这篇文章主要介绍了几个缩减MySQL以节省磁盘空间的建议,主要从表结构和存储内容两个方面来谈减容,需要的朋友可以参考下
    2015-05-05
  • MySQL中隐式转换的踩坑记录以及解决方法分享

    MySQL中隐式转换的踩坑记录以及解决方法分享

    这篇文章主要和大家分享一个MySQL隐式转换时踩过的坑,差点把服务器整崩溃了,以及最后的解决办法。文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-11-11
  • 草稿整理后mysql两个数据库结构对比

    草稿整理后mysql两个数据库结构对比

    这篇文章主要为大家详细介绍了mysql两个数据库结构对比结果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • SQL实现LeetCode(197.上升温度)

    SQL实现LeetCode(197.上升温度)

    这篇文章主要介绍了SQL实现LeetCode(197.上升温度),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论