问题描述:
在调试QT程序的时候出现以下图中所示问题,由QString str = db.lastError().text().toLocal8Bit(); 得到。导致数据库一直连接不上。
解决方案:
在这里我就直接略过已经尝试并测试失败的方法,直接写正确的解决方案。
1、由该str可知,驱动加载失败,于是我就重新编译了驱动。
2、编译驱动的过程如下:
3、首先下载libmysql.lib(该文件在我的资源中有上传)和libmysql.dll两个文件,我这里只用了lib这个文件,将其放在以下目录,D:\Qt\4.8.5\src\plugins\sqldrivers\mysql;
4、然后编辑D:\Qt\4.8.5\src\plugins\sqldrivers\mysql目录下的mysql.pro文件,在其中加入以下内容:
5、然后运行qt控制台窗口,如下图:
6、切换到D:\Qt\4.8.5\src\plugins\sqldrivers\mysql下,执行qmake;
7、下图为执行qmake的截图:
8、执行后会路径下会产生以下文件:
9、然后运行vs2010的控制台工具,如下图:
10、切换到D:\Qt\4.8.5\src\plugins\sqldrivers\mysql下,然后执行nmake和nmake release(是nmake);
11、执行nmake的截图:
12、执行nmake release的截图:
13、此时在D:\Qt\4.8.5\src\plugins\sqldrivers\mysql目录的deubg和release下回分别产生如下文件:
14、将以上的四个文件复制到D:\Qt\4.8.5\plugins\sqldrivers目录下(在我的资源文件中我已上传,是否适合请自行判断);
15、最后把libmysql.lib和libmysql.dll两个文件复制到C:\Windows\System32下;
16、最后测试一遍qt控制台应用程序,如下:
如果出现以下就表示成功。