mysql 连接出现 Public Key Retrieval is not allowed
错误解释:
这个错误通常发生在使用MySQL 5.6或更高版本的客户端尝试连接到MySQL服务器时。从MySQL 5.6开始,客户端连接时默认启用了密码插件,该插件要求使用密码认证机制,如果客户端配置不允许公钥检索,就会出现“Public Key Retrieval is not allowed”的错误。
问题解决:
更新客户端配置,允许公钥检索。在客户端的配置文件(如
my.cnf
或my.ini
)中,确保有以下配置项:[mysqld] default_authentication_plugin=mysql_native_password
然后重启MySQL服务。
如果不希望更改服务器配置,可以在连接字符串中使用
mysql_native_password
插件进行连接:SET PASSWORD FOR 'your_username'@'your_host' = PASSWORD('your_password');
或者在创建用户时指定密码认证插件:
CREATE USER 'your_username'@'your_host' IDENTIFIED WITH mysql_native_password BY 'your_password';
如果是在代码中连接数据库,确保连接字符串正确设置了认证插件,例如在Python的MySQLdb中:
db = MySQLdb.connect(host="localhost", user="username", passwd="password", db="dbname", client_flag=mysql.client.GET_SERVER_PUBLIC_KEY)
确保在进行任何更改之前备份相关配置文件和数据库,并在了解可能带来的安全风险前再允许公钥检索。
评论已关闭