代码之家  ›  专栏  ›  技术社区  ›  lch

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

  •  26
  • lch  · 技术社区  · 6 年前

    我正在尝试使用python connector连接到mysql服务器。我创建了一个新用户 lcherukuri 使用身份验证插件 mysql_native_password .

    但我搞错了

    mysql.connector.errors.notSupportedError:不支持身份验证插件“caching_sha2_password”

    有人能帮我吗?

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

    enter image description here

    9 回复  |  直到 5 年前
        1
  •  28
  •   Ben    6 年前

    Caching SHA-2 Pluggable Authentication

    在MySQL8.0中, caching_sha2_password 是默认的身份验证插件而不是 mysql_native_password .

    你在用 mysql_本机密码 ,这不再是默认值。假设你正在使用 correct connector for your version 您需要指定 the auth_plugin argument 在实例化连接对象时

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

    从这些相同的文档中:

    这个 connect() 方法支持 身份验证插件 可用于强制使用特定插件的参数。例如,如果服务器配置为使用 sha256_password 默认情况下,您希望连接到使用 mysql_本机密码 ,或者使用ssl连接,或者指定 auth_plugin='mysql_native_password' .

        2
  •  60
  •   ozgeneral    5 年前

    我也遇到过同样的问题 auth_plugin='mysql_native_password' 不工作,因为我不小心安装了 mysql-connector 而不是 mysql-connector-python

        3
  •  14
  •   Dirk Horsten    5 年前

    这里已经回答了这个问题,并且这个解决方案可以工作。

    caching sha2 password is not supported mysql

    只需尝试以下命令:

    pip install mysql-connector-python
    
        4
  •  2
  •   Peter Chen    5 年前

    以上的解决方案对我都不起作用。我试过了,非常沮丧,直到我看了以下视频: https://www.youtube.com/watch?v=tGinfzlp0fE

    “pip uninstall mysql connector”在某些计算机上工作,而在其他计算机上可能不工作。

    我做了以下工作:

    MySQL连接器导致问题。

    1. pip卸载mysql connector

      以下可能不需要,但我完全卸下了两个接头。

    2. pip卸载mysql connector python

      重新安装mysql conenct pyhton connector。

    3. pip安装mysql connector python

        5
  •  1
  •   Kaustuv    5 年前

    修改mysql加密

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

        6
  •  1
  •   Matthew Rajaram S. Borwade    5 年前

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

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

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
    
        7
  •  0
  •   PacuS    5 年前

    您可以转到设置->项目->项目解释器,并在此安装最新版本的MySQL Connector python包。在我的例子中,它是mysql连接器python 8.0.15。

        8
  •  0
  •   coding_tim    5 年前

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

        9
  •  0
  •   Manouchehr Rasouli    5 年前

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

    谢谢。