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的半同步复制

    从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?今天我们就来详细讲解下,希望大家能够喜欢。
    2017-03-03
  • mysql 的load data infile

    mysql 的load data infile

    前些日子在开发一个舆情监测系统,需要在一个操作过程中往数据表里插入大量的数据,为了改变以往生硬地逐条数据插入的笨办法,也为了提高执行效率,决定用load data infile来执行数据插入。
    2009-05-05
  • 解决MySQL主从数据库没有同步的两种方法

    解决MySQL主从数据库没有同步的两种方法

    这篇文章主要介绍了解决MySQL主从数据库没有同步的两种方法,需要的朋友可以参考下面文章内容
    2021-09-09
  • MySQL语句之MD5()的使用方式

    MySQL语句之MD5()的使用方式

    这篇文章主要介绍了MySQL语句之MD5()的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • mysql逗号分隔的一行数据转为多行数据的两种方法

    mysql逗号分隔的一行数据转为多行数据的两种方法

    本文主要介绍了两种将MySQL中逗号分隔的一行数据转换为多行数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • MySQL into_Mysql中replace与replace into用法案例详解

    MySQL into_Mysql中replace与replace into用法案例详解

    这篇文章主要介绍了MySQL into_Mysql中replace与replace into用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 详解MySQL 8.0 之不可见索引

    详解MySQL 8.0 之不可见索引

    这篇文章主要介绍了MySQL 8.0 之不可见索引的相关资料,帮助大家更好的理解和学习新版本的MySQL,感兴趣的朋友可以了解下
    2020-10-10
  • 在MySQL数据库中使用C执行SQL语句的方法

    在MySQL数据库中使用C执行SQL语句的方法

    与PostgreSQL相似,可使用许多不同的语言来访问MySQL,包括C、C++、Java和Perl。从Professional Linux Programming中第5章有关MySQL的下列章节中,Neil Matthew和Richard Stones使用详尽的MySQL C接口向我们介绍了如何在MySQL数据库中执行SQL语句。
    2012-10-10
  • MySQL占用内存较大与CPU过高测试与解决办法

    MySQL占用内存较大与CPU过高测试与解决办法

    为了装mysql环境测试,装上后发现启动后MySQL占用内存了很大,达8百多兆。网上搜索了一下,得到高人指点my.ini。再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过多少M还是看得明的
    2018-03-03
  • php 读取mysql数据库三种方法

    php 读取mysql数据库三种方法

    mysql 读取数据库三种方法,需要的朋友可以参考下。
    2009-11-11

最新评论