Python 认证插件';缓存密码';不支持

Python 认证插件';缓存密码';不支持,python,mysql,Python,Mysql,我正在尝试使用python连接器连接到MySQL服务器。我用身份验证插件mysql\u native\u password创建了一个新用户lcherukuri 但是我弄错了 mysql.connector.errors.NotSupportedError:不支持身份验证插件“缓存\u sha2\u密码” 有人能帮我吗 import mysql.connector cnx = mysql.connector.connect(user='lcherukuri', password='passwor

我正在尝试使用python连接器连接到MySQL服务器。我用身份验证插件mysql\u native\u password创建了一个新用户
lcherukuri

但是我弄错了

mysql.connector.errors.NotSupportedError:不支持身份验证插件“缓存\u sha2\u密码”

有人能帮我吗

import mysql.connector

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

在MySQL 8.0中,
caching\u sha2\u password
是默认的身份验证插件,而不是
MySQL\u native\u password

您使用的是
mysql\u native\u密码
,它不再是默认密码。假设您正在使用,则需要在实例化连接对象时指定

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')
从这些文件中:

connect()
方法支持可用于强制使用特定插件的
auth\u plugin
参数。例如,如果服务器默认配置为使用
sha256\u密码
,并且您希望连接到使用
mysql\u native\u密码
进行身份验证的帐户,请使用SSL连接或指定
auth\u plugin='mysql\u native\u password'


我也遇到了同样的问题,传递
auth\u plugin='mysql\u native\u password'
不起作用,因为我不小心安装了
mysql connector
,而不是
mysql connector python
(通过pip3)。把这个放在这里以防万一会有帮助

这个问题已经在这里得到了回答,这个解决方案很有效

请尝试以下命令:

pip install mysql-connector-python

您可以进入设置->项目->项目解释器,在这里安装最新版本的mysql连接器python包。在我的例子中,是mysql连接器python 8.0.15。

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

以上解决方案对我都不起作用。我尝试过,但非常沮丧,直到我观看了以下视频:

pip卸载mysql连接器
在某些计算机上工作,但在其他计算机上可能不工作

我做了以下工作:

mysql连接器导致问题。
  • pip卸载mysql连接器

    以下内容可能不需要,但我已完全卸下了两个接头
  • pip卸载mysql连接器python

    重新安装mysql conenct python连接器

  • pip安装mysql连接器python


  • 修改Mysql加密


    将用户'lcherukuri'@'localhost'用'password'标识为mysql_native_密码

    我有同样的问题,但我的解决方案不同,因为这不完全有效

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

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

    我试图解决这个错误,最后安装了PyMySQL而不是mysql库 而且工作正常


    谢谢。

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

    错误:由于环境错误[WinError 5]访问,无法安装程序包 s被拒绝:“D:\softwares\spider\Lib\site packages\libmysql.dll” 考虑使用<代码>用户< /代码>选项或检查权限。

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

     pip install --user mysql-connector-python
    

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

    以获得更持久的解决方案,而无需检查代码并修改任何需要修改的内容: 根据,最简单的修复方法是将以下内容添加到MySQL d文件->重新启动MySQL服务器

    这对我有用

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

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

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

    pip install mysql-connector-python
    

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

    连接MySQL时出错:不支持身份验证插件“缓存\u sha2\u密码”

    我的解决方案很简单:


    我的数据库用户名/密码凭据不正确。这个错误并不能说明问题,所以我想我会分享这个,以防其他人遇到这个问题。

    我卸载了mysql连接器(我安装了w3schools教程中的以下教程),并安装了mysql连接器python。成功了


    我连续两天都面临着同样的错误,最后我找到了解决办法。我使用
    pip list
    检查了所有已安装的连接器,并卸载了所有连接器。就我而言,它们是:

  • mysql连接器
  • mysql连接器python
  • mysql连接器python rf
  • 使用
    pip-uninstall-mysql-connector
    卸载了它们,最后从下载并安装了
    mysql-connector-python
    ,运行良好

  • 使用下面的命令安装mysql连接器


    pip安装mysql连接器python rf

  • 使用命令设置权限

    ALTER USER'root'@'localhost'由mysql\u native\u密码标识
    “非常强的密码”;
    同花顺特权

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

    mydb=mysql.connector.connect(
    host=“localhost”,
    user=“root”,
    passwd=“非常强的密码”,
    auth\u plugin='mysql\u native\u password')


  • 我也犯了类似的错误

      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连接器
    pip3 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',
    
    )