gpt4 book ai didi

mysql - 使用qt的mysql 8的身份验证问题

转载 作者:可可西里 更新时间:2023-11-01 07:33:59 28 4
gpt4 key购买 nike

我正在开发一个可以连接到 mysql 服务器的 qt (5.12.2) 应用程序。最近我试图连接到 mysql 8 服务器。我无法连接,并收到以下错误消息:

Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.

经过一些挖掘,我发现问题是因为 mysql 8 中实现的新加密。

此问题的解决方法是将服务器设置为旧版身份验证方法。

有没有不切换回旧认证的解决方案?

最佳答案

有 2 个可能的问题会导致此问题。

  1. 您正在使用旧方法并使用 QMYSQL 驱动程序连接不支持的 MySQL Connector/C (libmysqlclient.dll) 连接器MySQL 8 和新的身份验证方法。
  2. 第二种方法是使用 QODBC 驱动程序不支持新身份验证的旧版本(<8.0)方法。

您可以通过切换或升级到最新的QODBC 驱动程序轻松解决此问题。您可以从 MySQL 下载最新版本 download page .通过这个小示例和正确的连接器,它将起作用。

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={MySQL ODBC 8.0 Unicode Driver};Server=example.com;Database=test;Uid=user;Port=3306;Pwd=password;WSID=.");
if (!db.open()) {
qDebug() << db.lastError().text();
} else {
qDebug("success");
}

关于mysql - 使用qt的mysql 8的身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543210/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com