我今天试着让Qt运行MySQL,在加载QMYSQL驱动程序时遇到了一个错误。我将Windows8.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. & 5.有点奇怪,因为我希望正确安装所有东西,设置路径变量不需要复制这些文件。不管怎么说,上述的建议对我都没有用。
我有点沮丧,希望能得到任何帮助。
谢谢!
发布于 2015-08-05 23:14:19
谢谢你的意见。事实证明这是一个非常愚蠢的错误。我试图在我的32位Qt构建中包含64位二进制文件。如果有人在让MySQL使用Qt时遇到麻烦,下面是它对我的工作方式:
-从http://www.qt.io/download/下载/安装Qt。C:\Qt\5.5\mingw492_32\plugins\sqldrivers应该包含qsqlmysql.dll,它是让Qt与MySQL交互的qt驱动程序。
-从MySQL下载/安装http://dev.mysql.com/downloads/mysql/。windows安装程序为我工作得很好
-install MySQL连接器C 6.1来自https://dev.mysql.com/downloads/connector/c/。这不是随windows安装程序一起提供的,而是包含所需的二进制文件。
来自C:\Program (x86)\MySQL\MySQL连接器C6.1\lib的-copy libmysql.dll和libmysql.lib到任何必须使用它的项目的.exe目录中
-enjoy是Qt中一个充满疑问的编程会话!
发布于 2015-08-05 00:57:01
应该是错配版本。我在Linux.You中也有类似的问题,它可以检查libqsqlmysql的依赖性,并找到所期望的mysql版本。正确匹配的版本应修复此问题。
https://stackoverflow.com/questions/31821329
复制相似问题