我正在try 用python连接器连接MySQL服务器.我用认证插件mysql_native_password创建了一个新用户lcherukuri.

但我错了

mysql.连接器.错误.NotSupportedError:不支持身份验证插件"缓存\u sha2\u密码"

有人能帮我吗?

import mysql.connector

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

enter image description here

推荐答案

Caching SHA-2 Pluggable Authentication

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

您使用的是mysql_native_password,这不再是默认值.假设您使用的是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()方法支持auth_plugin参数,可用于强制使用特定插件.例如,如果服务器默认配置为使用sha256_password,并且您希望连接到使用mysql_native_password进行身份验证的帐户,请使用SSL连接或指定auth_plugin='mysql_native_password'.

Mysql相关问答推荐

括号在SQL查询中的作用?

在联合查询中使用GROUP BY和ORDER BY

对具有依赖子查询结果的2列使用等式比较来优化连接

MySQL RDS ALTER TABLE ENUM短暂中断了我的数据库连接

S在我的SQL代码中的外键出了什么问题?

Laravel DB::Transaction()

基于多行从表中 Select

在MySQL中使用FIRST_VALUE()

即使在某些表中不匹配,如何从 MySQL 中的多个表中 Select 所有记录

如何获取每日登录用户数?

如何编写按天数汇总值的sql查询?

如何将结果列中的不同值按其他列sql中的值带入单行

SQL从字典中的键获取值

基于 3 个条件 Select 3 行的最佳 MySQL 索引和查询

MySQL - 如何在 INSERT 语句中将字符串值解析为 DATETIME 格式?

从 MYSQL 查询中计算列的平均值

在 MySQL 中检测 utf8 损坏的字符

MAMP mysql 服务器无法启动.没有mysql进程正在运行

MySQL:唯一字段需要是索引吗?

MySQL更新查询与左连接和分组依据