MySQL 8.0 C API 开发者指南 / 第 5 章 C API 基本接口 / 5.4 C API 基本功能说明 /
5.4.66 mysql_reset_server_public_key()
void
mysql_reset_server_public_key(void)
从客户端库中清除服务器为基于 RSA 密钥对的密码交换所需的任何公钥缓存副本。如果在客户端程序调用指定 RSA 公钥mysql_options()
的
选项后使用不同的 RSA 密钥对重新启动服务器,则这可能是必需的
。MYSQL_SERVER_PUBLIC_KEY
在这种情况下,可能会因密钥不匹配而导致连接失败。要解决此问题,客户端可以使用以下任一方法:
mysql_reset_server_public_key()
在客户端的公钥文件被包含新公钥的文件替换后, 客户端可以调用 清除缓存的密钥并重试。客户端可以调用
mysql_reset_server_public_key()
以清除缓存的密钥,然后mysql_options()
使用MYSQL_OPT_GET_SERVER_PUBLIC_KEY
选项(而不是MYSQL_SERVER_PUBLIC_KEY
)调用以从服务器请求所需的公钥不要同时使用两者MYSQL_OPT_GET_SERVER_PUBLIC_KEY
,MYSQL_SERVER_PUBLIC_KEY
因为在这种情况下,MYSQL_SERVER_PUBLIC_KEY
优先。