this authentication plugin is not supported

应用程序连接mysql docker一直报错:this authentication plugin is not supported。
google发现,原来是mysql新版本(8.0以上)将root用户使用的plugin更新成caching_sha2_password。
登录mysql输入如下命令可以看到:

mysql> select user,plugin from mysql.user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | caching_sha2_password |
| mysql.infoschema | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| root | caching_sha2_password |
+------------------+-----------------------+

解决办法有:
(1)降级,使用老版本mysql。
(2)将root的plugin改成mysql_native_password。
这里改成:

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;

这行代码有两层含义,第一:修改root的密码为’root’,摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。

然后再启动应用,还是一样报错。再看mysql.user,发现还有一个host”%”的root用户:

mysql> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys | mysql_native_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)

将这个用户也改了:
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’;
再看:

mysql> select host,user,plugin from mysql.user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | mysql_native_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys | mysql_native_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+

改成功了,再启动应用,报错:
this user requires mysql native password authentication
在连接mysql的url上加上?allowNativePasswords=true,这次正常了。
---------------------

最新文章

  1. 【leetcode】Valid Sudoku
  2. Security9:查询Login被授予的权限
  3. webrtc初识
  4. OpenGL学习笔记5——嵌入Qt框架
  5. 用Python写了个抓图小脚本
  6. Android学习网站
  7. 《认识你自己(Archetypes who are you?)》 10种原型的行为模式和性格特征
  8. python深复制和浅复制
  9. pg viedio
  10. GLSL实现Fresnel And Chromatic aberration 【转】
  11. Asp.net MVC 视图之公用代码
  12. 关于python命令在editor里编写与在interpreter里的编写的不同之处
  13. JAVA IO流结构图
  14. Cox回归模型【生存分析】
  15. 关于Alipay支付宝接口(Java版)
  16. sort与qsort的用法,建议使用sort
  17. youDao
  18. Java代码一行一行读取txt的内容
  19. [c/c++] programming之路(16)、指针
  20. Windows XP Ghost系统安装

热门文章

  1. Robots.txt 不让搜索引擎收录网站的方法
  2. 全文搜索引擎 Elasticsearch (二) 使用场景
  3. Ionic入门三:列表
  4. poj3349(hash table)
  5. Redis 服务器命令
  6. ubuntu搭建php运行环境
  7. EL表达式和JSTL标准标签库
  8. 【漏洞预警】CVE-2017-8464 震网三代漏洞复现
  9. 课堂练习—hash
  10. Shell 学习笔记之条件语句