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对于各种锁的概念理解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Mysql中的sql优化实践详解

    Mysql中的sql优化实践详解

    这篇文章主要介绍了Mysql中的sql优化实践详解,SQL优化是指通过改进SQL语句的编写和查询计划的设计来提高数据库查询性能的过程,在优化SQL时,可以采取一些措施来提升查询性能,需要的朋友可以参考下
    2023-09-09
  • mysql 搜寻附近N公里内数据的简单实例

    mysql 搜寻附近N公里内数据的简单实例

    下面小编就为大家带来一篇mysql 搜寻附近N公里内数据的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较

    深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较

    本篇文章是对MySQL数据库MyISAM与InnoDB存储引擎的比较进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 一条 SQL 语句执行过程

    一条 SQL 语句执行过程

    这篇文章主要介绍了一条 SQL 语句执行过程的相关资料,没人详细具有一的的参考价值,需要的小伙伴可以参考一下,希望对你的学习和工作有所帮助
    2022-03-03
  • mysql ON DUPLICATE KEY UPDATE语句示例

    mysql ON DUPLICATE KEY UPDATE语句示例

    本文介绍一下关于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法
    2013-11-11
  • MySQL中CHAR和VARCHAR类型演变和详解

    MySQL中CHAR和VARCHAR类型演变和详解

    MySQL数据库的varchar类型在5.0.3以下的版本中的最大长度限制为255,其数据范围可以是0~255
    2012-06-06
  • 浅谈mysql中int(1)和int(10)的区别

    浅谈mysql中int(1)和int(10)的区别

    本文主要介绍了浅谈mysql中int(1)和int(10)的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • mysql多个left join连接查询用法分析

    mysql多个left join连接查询用法分析

    这篇文章主要介绍了mysql多个left join连接查询用法,结合实例形式对比分析了mysql使用left join进行连接查询相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • MySQL rownumber SQL生成自增长序号使用介绍

    MySQL rownumber SQL生成自增长序号使用介绍

    MySQL 几乎模拟了 Oracle,SQL Server等商业数据库的大部分功能,函数。但很可惜,到目前的版本(5.1.33)为止,仍没有实现ROWNUM这个功能
    2011-10-10

最新评论