在用QT5.4连接MySQL数据库时,会出现以下的错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL QMYSQL3 QODBC
因为QT5以上的版本都自带了MySQL驱动,如下:
Google了一下,据说是该驱动所满足的依赖性,不满足,需要重新编译,那就重新编译吧。
到mysql官网下载5.6版的32位zip文件,解压缩到D:\MySQL-Win32(一定要是32位的mysql,否则编译不通过)。
解压Qt5.4.0的zip源码到E:\Qt\qt-everywhere-opensource-src-5.4.0。
PS:数据库的选择:不建议使用Mysql5.5以上版本,目前5.5以上只有5.6, 因为5.6版本不能自定义 MysqlServer 的安装位置, 而安装位置必须是没有空格的.虽然5.6能够自定义文件夹,但文件夹下面的文件夹是有空格的,5.5可以完全自定义。
打开MinGW命令行工具:
cd E:\qt-everywhere-opensource-src-5.4.0\qtbase\src\plugins\sqldrivers\mysql
接下来生成makefile,继续输入以下命令:
qmake "INCLUDEPATH+=E:\MySQL5.5\include" "LIBS+=E:\MySQL5.5\lib\libmysql.lib" -o Makefile mysql.pro然后进行编译:
mingw32-make以上命令都是在MinGW命令行工具下完成。
编译完成后,将E:\qt-everywhere-opensource-src-5.4.0\qtbase\plugins\sqldrivers文件夹下的qsqlmysql.dll和qsqlmysqld.dll复制到C:\Qt\Qt5.4.0\5.4\mingw491_32\plugins\sqldrivers
最后一步,将E:\MySQL5.5\lib目录下的libmysql.dll复制到C:\Windows下。
一切大功告成,可以开始试着用QT连接数据库啦~