身份验证插件' caching_sha2_password'不受支持

时间:2018-05-27 22:53:59

标签: python mysql

我正在尝试使用python连接器连接MySQL服务器。我使用身份验证插件lcherukuri创建了一个新用户mysql_native_password。但是我收到了错误mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported。有人能帮我吗?

import mysql.connector

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

enter image description here

22 个答案:

答案 0 :(得分:32)

我遇到了同样的问题,并且通过auth_plugin='mysql_native_password'无效,因为我不小心安装了mysql-connector而不是mysql-connector-python(通过pip3)。只是为了避免有人帮忙而将其留在这里。

答案 1 :(得分:18)

Caching SHA-2 Pluggable Authentication

  

在MySQL 8.0中,mysql_native_password是默认的身份验证插件,而不是mysql_native_password

您正在使用cnx = mysql.connector.connect(user='lcherukuri', password='password', host='127.0.0.1', database='test', auth_plugin='mysql_native_password') ,这不再是默认设置。假设您正在使用correct connector for your version,则需要在实例化连接对象时指定the auth_plugin argument

connect()

来自同样的文档:

  

auth_plugin方法支持sha256_password参数,可用于强制使用特定插件。例如,如果服务器默认配置为使用mysql_native_password,并且您希望连接到使用auth_plugin='mysql_native_password'进行身份验证的帐户,请使用SSL进行连接或指定exec()

答案 2 :(得分:9)

我也遇到了类似的错误

Scenario

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

  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

答案 3 :(得分:8)

这里已经回答了这个问题,此解决方案有效。

caching sha2 password is not supported mysql

只需尝试以下命令:

pip install mysql-connector-python

答案 4 :(得分:3)

使用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',

)

答案 5 :(得分:2)

pip install -U mysql-connector-python 这对我有用,如果您已经安装了 mysql-connector-python 然后按照 https://stackoverflow.com/a/50557297/6202853 这个答案

答案 6 :(得分:2)

对于那些因为先安装了mysql-connector而无法工作的人,我做了以下工作:

1。首先在CMD上转到“ pip”的路径

2。使用“点子列表”命令

3。将安装三个软件包,即六个,protobuf和mysql-connector

4。分别卸载它们

5。现在重新安装mysql-connector-python模块

这对我有用

答案 7 :(得分:2)

pip3 install mysql-connector-python确实也解决了我的问题。忽略使用mysql-connector模块。

答案 8 :(得分:2)

我遇到了同样的错误2天,然后终于找到了解决方案。我使用pip list检查了所有已安装的连接器,并卸载了所有连接器。就我而言,它们是:

  1. mysql-connector
  2. mysql-connector-python
  3. mysql-connector-python-rf

使用pip uninstall mysql-connector卸载它们,最后从MySQL official website下载并安装mysql-connector-python,效果很好。

答案 9 :(得分:1)

  1. 使用以下命令安装mysql连接器。

    pip install mysql-connector-python-rf

  2. 使用命令设置特权。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;

  3. 使用python命令连接到mysql数据库

    mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')

答案 10 :(得分:1)

我遇到了同样的问题,但是我的解决方法有所不同,因为这不能完全起作用。

我在GitHub论坛上找到了它-将其复制并粘贴到您的终端中。您不必更改密码;可以完全相同。

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

答案 11 :(得分:0)

如果您正在寻找以下错误的解决方法

  

错误:由于环境错误而无法安装软件包:[WinError 5]访问   s被拒绝:'D:\ softwares \ spider \ Lib \ site-packages \ libmysql.dll'   考虑使用--user选项或检查权限。

解决方案: 如果发现访问被拒绝的错误,则应添加--user

 pip install --user mysql-connector-python

将此命令粘贴到cmd中并解决您的问题

答案 12 :(得分:0)

要有一个更永久的解决方案,而无需遍历代码并修改需要修改的内容: 根据{{​​3}},最简单的解决方法是将以下内容添加到MySQL d文件->重新启动MySQL服务器。

这对我有用!

如果您的MySQL安装必须服务于8.0之前的客户端,并且在升级到MySQL 8.0或更高版本后遇到兼容性问题,则解决这些问题并恢复8.0之前的兼容性的最简单方法是将服务器重新配置为恢复为先前的默认设置身份验证插件(mysql_native_password)。例如,在服务器选项文件中使用以下行:

[mysqld]
#add the following file to your MySQLd file
    default_authentication_plugin=mysql_native_password

答案 13 :(得分:0)

我有一个几乎相同的错误:

Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported

对我来说解决方案很简单:

我的数据库用户名/密码凭据不正确。该错误不是问题的描述,所以我想我会分享的,以防其他人遇到该问题。

答案 14 :(得分:0)

我卸载了mysql-connector(我在w3schools教程中安装了以下教程),而是安装了mysql-connector-python。有效。

答案 15 :(得分:0)

我尝试解决此错误,最后安装 PyMySQL 而不是mysql库 并且工作正常。

谢谢。

答案 16 :(得分:0)

使用MySql 8,将代码连接到数据库时出现了相同的错误,使用pip install mysql-connector-python确实解决了该错误。

答案 17 :(得分:0)

修改Mysql加密

ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

答案 18 :(得分:0)

以上解决方案都不适合我。在观看以下视频之前,我一直感到非常沮丧。 https://www.youtube.com/watch?v=tGinfzlp0fE

“ pip卸载mysql-connector”可在某些计算机上运行,​​而可能不适用于其他计算机。

我做了以下事情:

mysql连接器导致问题。

  1. pip卸载mysql-connector

    以下可能不需要,但是我完全移除了两个连接器。

  2. pip卸载mysql-connector-python

    重新安装mysql-conenct-pyhton连接器。

  3. pip安装mysql-connector-python

答案 19 :(得分:0)

我也遇到了同样的问题。 我的问题是,我不小心安装了错误的连接器版本。 从文件系统中删除当前安装的版本(我的路径如下所示:C:\ Program Files \ Python36 \ Lib \ site-packages),然后执行 “ pip install mysql-connector-python”。 这应该可以解决您的问题

答案 20 :(得分:0)

您可以转到“设置”->“项目”->“项目解释器”,然后在此处安装最新版本的mysql-connector-python软件包。就我而言,它是mysql-connector-python 8.0.15。

答案 21 :(得分:-1)

请在命令提示符下安装以下命令。

pip install mysql-connector-python

enter image description here