python连接mysql报错,如何解决?

python连接sql报错

raise errors.NotSupportedError(
mysql.connector.errors.NotSupportedError: Authentication plugin  caching_sha2_password' is not supported

Connection=mysql.connector.connect(host='localhost',
                                   port='3306',
                                   user='root',
                                   password='112358',
                                   auth_plugin='mysql_native_password')


已经在前面修改了auth_plugin=mysql_native_password 改为旧插件,为啥仍然报错?

不写这个行不行auth_plugin=mysql_native_password

这个错误信息表示您尝试使用不兼容的认证插件来连接MySQL服务器。在MySQL 8.0及更高版本中,默认的认证插件是caching_sha2_password,而您的代码中指定的mysql_native_password插件不再支持。

要解决这个问题,您需要更新代码以使用与MySQL服务器兼容的认证插件。您可以尝试以下方法之一:

  1. 更新代码以使用caching_sha2_password插件:
connection = mysql.connector.connect(
    host='localhost',
    port='3306',
    user='root',
    password='112358',
    auth_plugin='caching_sha2_password'
)

请注意,此方法需要MySQL服务器已配置为使用caching_sha2_password插件。

  1. 配置MySQL服务器以使用mysql_native_password插件:

您可以按照以下步骤配置MySQL服务器以使用mysql_native_password插件:

  • 停止MySQL服务器。
  • 编辑MySQL配置文件(通常是my.cnfmy.ini)。
  • 在[mysqld]部分下添加或修改以下行:
    [mysqld]
    auth_plugin=mysql_native_password
    
  • 保存配置文件并关闭。
  • 启动MySQL服务器。

然后,您可以在Python代码中使用以下连接参数:

connection = mysql.connector.connect(
    host='localhost',
    port='3306',
    user='root',
    password='112358',
    auth_plugin='mysql_native_password'
)

请注意,修改MySQL服务器配置需要适当的权限,并且可能需要对MySQL服务器的其他配置进行更改。

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^