不支持身份验证插件“caching\u sha2\u password”

cpjpxq1n  于 2021-06-23  发布在  Mysql
关注(0)|答案(21)|浏览(575)

我正在尝试用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()

gj3fmq9x

gj3fmq9x1#

我试图解决这个错误,最后安装pymysql而不是mysql库,它工作正常。
谢谢。

bybem2ql

bybem2ql2#

我也犯了类似的错误

File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
    "Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

您可能已经安装了mysql connector而不是mysql connector python。因此,您需要为python3再次安装它:

pip3 install mysql-connector-python
gudnpqoy

gudnpqoy3#

我面对同样的错误两天,然后终于找到了解决办法。我检查了所有安装的连接器 pip list 并卸载了所有连接器。就我而言,它们是:
mysql连接器
mysql连接器python
mysql连接器python rf
使用卸载了它们 pip uninstall mysql-connector 最后下载并安装了 mysql-connector-python 来自mysql官方网站,运行良好。

5jdjgkvh

5jdjgkvh4#

修改mysql加密 ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

amrnrhlw

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')

yftpprvb

yftpprvb6#

我也有同样的问题 auth_plugin='mysql_native_password' 没有工作,因为我不小心安装了 mysql-connector 而不是 mysql-connector-python (通过pip3)。把这个留在这里以防万一。

mbjcgjjk

mbjcgjjk7#

每缓存sha-2可插拔身份验证
在mysql 8.0中, caching_sha2_password 是默认的身份验证插件,而不是 mysql_native_password .
你用的是 mysql_native_password ,不再是默认值。假设您正在为您的版本使用正确的连接器,您需要指定 auth_plugin 示例化连接对象时的参数

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')

同样的文件:
这个 connect() 方法支持 auth_plugin 可用于强制使用特定插件的参数。例如,如果服务器配置为使用 sha256_password 默认情况下,您希望连接到使用 mysql_native_password ,使用ssl连接或指定 auth_plugin='mysql_native_password' .

3okqufwl

3okqufwl8#

使用mysql 8时,我在将代码连接到db时遇到了相同的错误,使用pip安装mysql连接器python解决了这个错误。

6ovsh4lw

6ovsh4lw9#

我有同样的问题,但我的决心是不同的,因为这并不完全有效。
我在github论坛上发现了这个-复制并粘贴到你的终端。你不必更改密码;可能完全一样。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
6bc51xsx

6bc51xsx10#

我有一个几乎相同的错误: Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported 我的解决办法很简单:
我的数据库用户名/密码凭据不正确。这个错误并不能描述问题,所以我想我会分享这个,以防其他人遇到这个问题。

4ngedf3f

4ngedf3f11#

请使用命令提示符安装下面的命令。

pip install mysql-connector-python

8nuwlpux

8nuwlpux12#

使用 pip install mysql-connector-python 然后像这样连接:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",               #hostname
  user="Harish",                   # the user who has privilege to the db
  passwd="Harish96",               #password for user
  database="Factdb",               #database name
    auth_plugin = 'mysql_native_password',

)
ergxz8rk

ergxz8rk13#

这个问题已经在这里得到了回答,这个解决方案是有效的。
mysql不支持缓存sha2密码
请尝试以下命令:

pip install mysql-connector-python
kzipqqlq

kzipqqlq14#

要获得一个更持久的解决方案,而不必检查代码和修改任何需要修改的内容:根据mysql 8文档,最简单的解决方法是将以下内容添加到mysql d文件->重新启动mysql服务器。
这对我有用!
如果您的mysql安装必须服务于8.0之前的客户端,并且在升级到mysql 8.0或更高版本后遇到兼容性问题,那么解决这些问题并恢复8.0之前兼容性的最简单方法是重新配置服务器以恢复到以前的默认身份验证插件(mysql\u native\u password)。例如,在服务器选项文件中使用以下行:

[mysqld]

# add the following file to your MySQLd file

    default_authentication_plugin=mysql_native_password
vltsax25

vltsax2515#

pip3安装mysql连接器python也解决了我的问题。使用mysql连接器模块忽略。

相关问题