我今天尝试让Qt运行Qt并且在加载QMYSQL驱动程序时遇到错误。我正在运行Windows 8.1作为操作系统。 这是我的申请代码:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "my_db_name");
db.setHostName("localhost");
db.setDatabaseName("mydb");
db.setUserName("root");
db.setPassword("testpwd1234");
if (db.open()) {
qDebug() << "Opened!";
} else {
qDebug() << "Error = " << db.lastError();
}
return a.exec();
}
运行它时出现以下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL3
我找到了上述错误的多种解决方案,但这些都不适用于我。以下是我验证/尝试的内容列表:
我找到了3,4。&amp; 5.有点奇怪,因为我希望正确安装所有内容并设置Path变量不应该要求复制这些文件。无论如何,上述建议都不适合我。
我有点沮丧,并希望得到任何帮助。
谢谢!
答案 0 :(得分:5)
感谢您的投入。结果证明这是一个非常愚蠢的错误。我试图用我的32位Qt版本包含64位二进制文件。如果有人遇到麻烦让MySQL与Qt一起工作,这就是它对我有用的方法:
- 从http://www.qt.io/download/下载/安装Qt。 C:\ Qt \ 5.5 \ mingw492_32 \ plugins \ sqldrivers应该包含qsqlmysql.dll,这是获取qt与MySQL交互的Qt驱动程序
- 从http://dev.mysql.com/downloads/mysql/下载/安装MySQL。 Windows安装程序对我来说很好用
- 从https://dev.mysql.com/downloads/connector/c/安装MySQL Connector C 6.1。 这并没有Windows安装程序,但将包含必要的二进制文件
-cile libmysql.dll和libmysql.lib从C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ lib进入.exe目录,用于任何必须使用它的项目
- 在Qt中享受查询编程会话!
答案 1 :(得分:0)
它应该是一个不匹配的版本。我在Linux中有类似的问题。您可以检查libqsqlmysql的依赖关系并找到完全预期的mysql版本。正确匹配的版本应该可以解决这个问题。