今天用QT连接mysql的时候显示没有mysql驱动,原来mysql驱动需要自己编译。期间遇到一些问题。但还好都被解决了。
1. 就是开始自己安装mysql5.5的时候是安装在C:\Program Files\MySQL下了,由于QT运行程序不能包含空格。所以就开始重新安装MYSQL,然后就遇到安装最后一步出现start service 未响应的问题。后来查找是有数据没有删除干净,解决方法参考http://dylwx.blog.163.com/blog/static/877725142012525105250457/。
2. 接下来就是编译mysql驱动了,参考http://heweiding155.iteye.com/blog/1393894 和 http://blog.csdn.net/wang_xuehen/article/details/7483133的方法。
将mysql安装目录下的include和lib两个文件夹拷贝到qt\4.7.4\src\plugins\sqldrivers\mysql下。可以自己新建一个目录如mysqllib。
修改mysql.pro文件,在第二行添加如下内容
INCLUDEPATH += "./mysqllib/include"
LIBS+= "./mysqllib/lib/libmysql.lib"
cd qt\4.8.4\src\plugins\sqldrivers\mysql
qmake
mingw32-make release
mingw32-make debug
全部执行完后,将release下的libqsqlmysql4.a,qsqlmysql4.dll和debug下的libqsqlmysqld4.a,libqsqlmysqld4.dll 拷贝至\Qt\4.8.4\mingw\plugins\sqldrivers 中
新建一个qt gui 控制台项目SQLtest
在SQLtest.pro中加入QT +=sql
接着修改main.cpp如下
#include<QtCore/QCoreApplication>
#include<QtSql>
intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);
qDebug()<<"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers();
foreach(QStringdriver,drivers)
qDebug()<<"\t"<<driver;
qDebug()<<"End";
returna.exec();
}
如果执行程序输出为以下内容则说明驱动安装成功了:
Available drivers:
"QSQLITE"
"QMYSQL3"
"QMYSQL"
End