关于“Authentication plugin ‘caching_sha2_password‘ is not suppored“问题处理

前言

        这次在windows端python环境链接本地虚拟机mysql数据库时,出现链接失败报错,经过一晚上的查找终于解决,这里写一下处理方案,想给遇到同样问题的大佬们一点参考(毕竟我也是在这里找到了办法)

一、前置 

环境:

1、win10(python 3.7.8 )

2、本地虚拟机:linux(CentOS 7),数据库(mysql  8.0.20 )

3、PyCharm编译器

二、触发问题步骤

1.PyCharm>Terminal 下载数据库驱动包

pip install mysql-connector

2.链接数据库

import mysql.connector

mydb=mysql.connector.connect(
    host="192.168.31.158",  
    user="root",
    password="123456"   
    )  

mc=mydb.cursor()
mc.execute("use DatabaseName")
mc.execute("show tables")
tbs=[]   
for x in mc:
    print(x[0])
    tbs.append(x[0])
print(tbs)

 结果就是出现报错:

mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

出错了咋办???看大佬们帖子!

然后我就把问题复制下来,开始逐一尝试:

3.尝试方法

1.增加参数:auth_plugin=’mysql_native_password’

import mysql.connector

mydb=mysql.connector.connect(
    host="192.168.31.158",  
    user="root",
    password="123456" ,
    auth_plugin='mysql_native_password'  
    )  

mc=mydb.cursor()
mc.execute("use DatabaseName")
mc.execute("show tables")
tbs=[]   
for x in mc:
    print(x[0])
    tbs.append(x[0])
print(tbs)

然而结果还是报错:

mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

2.在linux端用下面命令修改mysql密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

依然报错:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

当然可能是因为具体情况,所以没操作对,总之我换了别的方法(弄的时候正在看《人在囧途》,可能心思有点不集中哈哈哈)

4.解决办法:

pip install mysql-connector-python

没错,最后是驱动包问题,这么简单的难题都不好让大佬们看到(略过略过...)

python环境下载好mysql-connector-python包后,惊奇的发现代码不变,直接成功了!

 其中 auth_plugin='mysql_native_password' 参数可有可无,不影响执行,到此算问题解决。

5.小细节!!!

过了一天为了验证两个包:mysql-connector 和 mysql-connector-python 是都需要还是只要mysql-connector-python,所以我执行了:

pip uninstall mysql-connector

点击源程序,运行,哦吼,报错了!重点来了,我再次执行

pip install mysql-connector

将mysql-connector包下载回来时,运行依然失败???这我就纳闷了,其中原因暂时没有去查阅

最后通过:File>Setting>Project>Python Interpreter ,对两个包mysql-connector 和 mysql-connector-python进行了装卸测试,最后发现这里即时装卸,只需要mysql-connector-python包就可以使之前程序成功执行,并获取到库数据!


总结

        一直想找个方式记录一下一些问题的解决方案,以便自己回顾,所以第一次决定在CSDN写下来(早有想法,不过很不喜欢写东西,太麻烦了),同时也能给遇到同样问题的大佬们一些参考,毕竟在这里我也学到了很多,共勉。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值