Python 操作错误:(2059,“身份验证插件”和“缓存密码”无法加载:找不到指定的模块。\r\n

Python 操作错误:(2059,“身份验证插件”和“缓存密码”无法加载:找不到指定的模块。\r\n,python,Python,运行此代码时: import MySQLdb db = MySQLdb.connect( host = '127.0.0.1', port=3307, user = 'root', passwd = 'root', db = 'root') cursor = db.cursor() db.close() 显示: 操作错误:(2059,“身份验证插件 无法加载“缓存\u sha2\u密码”:无法加载指定的模块 找不到。\r\n“ 嘿,我想我应

运行此代码时:

    import MySQLdb 
     db = MySQLdb.connect( host = '127.0.0.1', port=3307, user = 'root', 
     passwd = 'root', db = 'root') 
     cursor = db.cursor()
     db.close()
显示:

操作错误:(2059,“身份验证插件 无法加载“缓存\u sha2\u密码”:无法加载指定的模块 找不到。\r\n“


嘿,我想我应该建立一个stackoverflow帐户来回答这个问题,因为我在这个问题上挣扎了太久,stackoverflow对我非常有帮助。你可能知道一些事情:

1) 问题是由于通过MySQL对密码的新身份验证方法,所以我卸载了新的MySQL,并使用了我立即看到的最旧版本,我认为是5.5,而不是当前版本

2) 使用root pass+root用户可能会有一些问题,但我对此表示怀疑

3) 通常MySQL在端口3306上是打开的,但可能是您故意更改的,不确定


无论如何,数字1)应该解决它。gl

我面临同样的问题,可能是因为密码加密;您可以使用以下语句更改密码的加密:

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
运行此SQL查询(例如在MySQL Workbench中),但确保相应地更改用户名和密码


有关更多详细信息:

以下解决方案适合我,请在此处输入图像描述

转到Mysql工作台->服务器->用户和权限

1.单击添加帐户

2.在“登录”选项卡下,提供新的详细信息,确保选择身份验证类型作为标准,并选择相应的管理角色和模式权限


运行此停靠的本地主机可能不是您的主机名。请尝试以下方法:


ALTER USER'USER'@''用“password”标识的mysql_native_密码

我遇到了同样的问题,然后我卸载了mysql并再次安装了它,但问题仍然存在。mysql没有问题。但是python的问题是,无论您使用的是32位python还是64位mysql,您都可能会面临这个问题。 使用64位python。这个问题很容易解决。 下载Python后,请使用安装连接器

 `pip install mysqlclient`

或者
pip安装--仅二进制:all:mysqlclient
正确保留空间。

转到
cmd
并键入
mysql-u root-p

输入密码:
****您的密码

mysql>ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

曾为Mysql 8.0.19和Windows 10工作。曾为Mysql 10.0.18363.1256和Windows 10工作。非常感谢你