Qt5.9连接MySql5.7.17错误解决办法(错误提示:QMYSQL driver not loaded)
1.1代码如下:(记得在.pro问价里面添加QT+=sql)
#include<QCoreApplication>
#include<QSqlDriver>
#include<QSqlDatabase>
#include<QSqlQuery>
#include<QDebug>
int main(int argc,char *argv[])
{
QCoreApplication a(argc,argv);
//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");//localhost 这里不方便透露出公司的数据库,所以只能用一般的IP地址替代
db.setDatabaseName("mqtt");
db.setUserName("admin");
db.setPassword("admin");
if(!db.open())
qDebug()<<"Failedtoconnecttorootmysqladmin";
else qDebug()<<"opensuccess!";
return a.exec();
}
1.2 具体的错误如下:(错误提示:QMYSQL driver not loaded)
1.3错误原因分析
我在网上查找了许多教程和解决办法,但是都没有解决这个错误。其实准确来说,网上那些解决办法应该是可行的,但是没有详细解释清楚。而我用Qt5.9之所以连接不上MySql5.7.17,是因为我用的是64位的libmysql.dll,而不是32位的libmysql.dll。所以,无论我怎么折腾,就是连接不上。因为Qt5.9有自带的Mysql驱动,不需要手动编译。所以我们只需要做的步骤是,找到libmysql.dll和libmysql.lib这两个文件,将它们复制到安装Qt目录的bin文件夹下就行,其它的操作不需要了,具体的操作步骤参考下面的1.4小节。
1.4.1在如下地址,下载libmysql.dll和libmysql.lib两个文件(都在压缩包libmysql_win32(32位libmysql.dll)里面,直接下载解压就行)。当然,也可以在MySql官网下载。
http://download.csdn.net/download/naibozhuan3744/10184187
1.4.2将解压出来的libmysql.dll和libmysql.lib文件,复制到Qt的安装目录bin下,如下图所示:
下载解压的libmysql.dll和libmysql.lib文件
复制到安装Qt5.9时的bin目录下
1.4.3程序编译执行后的结果,如下图所示
由上图结果可知,解决Qt5.9连接MySql5.7.17没有驱动错误时,只需要用32位的libmysql.dll和libmysql.lib两个文件,放入安装Qt5.9时的目录bin下就可以正确解决该错误。
http://download.csdn.net/download/naibozhuan3744/10184187
http://bbs.csdn.net/topics/392193439
http://www.cnblogs.com/foxhengxing/archive/2011/05/24/2055622.html