我正在尝试用python连接器连接到mysql服务器。我创建了一个新用户 lcherukuri
使用身份验证插件 mysql_native_password
.
但我错了
mysql.connector.errors.notsupportederror:不支持身份验证插件“caching\u sha2\u password”
有人能帮我吗?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1',
database='test')
cnx.close()
21条答案
按热度按时间gj3fmq9x1#
我试图解决这个错误,最后安装pymysql而不是mysql库,它工作正常。
谢谢。
bybem2ql2#
我也犯了类似的错误
您可能已经安装了mysql connector而不是mysql connector python。因此,您需要为python3再次安装它:
gudnpqoy3#
我面对同样的错误两天,然后终于找到了解决办法。我检查了所有安装的连接器
pip list
并卸载了所有连接器。就我而言,它们是:mysql连接器
mysql连接器python
mysql连接器python rf
使用卸载了它们
pip uninstall mysql-connector
最后下载并安装了mysql-connector-python
来自mysql官方网站,运行良好。5jdjgkvh4#
修改mysql加密
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
amrnrhlw5#
使用下面的命令安装mysql连接器。
pip install mysql-connector-python-rf
使用命令设置权限。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;
使用python命令连接mysql数据库mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')
yftpprvb6#
我也有同样的问题
auth_plugin='mysql_native_password'
没有工作,因为我不小心安装了mysql-connector
而不是mysql-connector-python
(通过pip3)。把这个留在这里以防万一。mbjcgjjk7#
每缓存sha-2可插拔身份验证
在mysql 8.0中,
caching_sha2_password
是默认的身份验证插件,而不是mysql_native_password
.你用的是
mysql_native_password
,不再是默认值。假设您正在为您的版本使用正确的连接器,您需要指定auth_plugin
示例化连接对象时的参数同样的文件:
这个
connect()
方法支持auth_plugin
可用于强制使用特定插件的参数。例如,如果服务器配置为使用sha256_password
默认情况下,您希望连接到使用mysql_native_password
,使用ssl连接或指定auth_plugin='mysql_native_password'
.3okqufwl8#
使用mysql 8时,我在将代码连接到db时遇到了相同的错误,使用pip安装mysql连接器python解决了这个错误。
6ovsh4lw9#
我有同样的问题,但我的决心是不同的,因为这并不完全有效。
我在github论坛上发现了这个-复制并粘贴到你的终端。你不必更改密码;可能完全一样。
6bc51xsx10#
我有一个几乎相同的错误:
Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported
我的解决办法很简单:我的数据库用户名/密码凭据不正确。这个错误并不能描述问题,所以我想我会分享这个,以防其他人遇到这个问题。
4ngedf3f11#
请使用命令提示符安装下面的命令。
8nuwlpux12#
使用
pip install mysql-connector-python
然后像这样连接:ergxz8rk13#
这个问题已经在这里得到了回答,这个解决方案是有效的。
mysql不支持缓存sha2密码
请尝试以下命令:
kzipqqlq14#
要获得一个更持久的解决方案,而不必检查代码和修改任何需要修改的内容:根据mysql 8文档,最简单的解决方法是将以下内容添加到mysql d文件->重新启动mysql服务器。
这对我有用!
如果您的mysql安装必须服务于8.0之前的客户端,并且在升级到mysql 8.0或更高版本后遇到兼容性问题,那么解决这些问题并恢复8.0之前兼容性的最简单方法是重新配置服务器以恢复到以前的默认身份验证插件(mysql\u native\u password)。例如,在服务器选项文件中使用以下行:
vltsax2515#
pip3安装mysql连接器python也解决了我的问题。使用mysql连接器模块忽略。