qt与mysql连接(驱动插件问题) 完美版

QT开发过程中免不了要用到mysql,大致遇到问题及解决方法如下。


1、 由于Qt中不存在MySql驱动插件,所以要自己编译出来。

其实缺少的东西是在C:\QtSDK\Desktop\Qt\4.8.1\mingw\plugins\sqldrivers路径下缺少 这两个文件,这里注意: QT SDK和QT creater的安装目录下文件夹的布置是不一样的,自己找到。
此时若进行编译,qt提示的错误是 

“QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC”



2、 我是利用  这几个文件编译上述缺少的驱动插件的。

由上面文件一个pro一个main.cpp即可知将其编译运行即可,首先qmake在make即可。另外这几个文件在QT SDK中路径为C:\QtSDK\src\plugins\sqldrivers\mysql(在QtSDK中本没有src文件夹(或者完全安装试一下),这也是遇到的问题,这需要在官网下载与自己版本相对应的文件(我下载的是qt-everywhere-opensource-src-4.8.1.zip)然后解压,将src文件夹复制到Qt SDK安装目录下,然后找到对应的plugins\sqldrivers\mysql即可),在Qt creater 中此文件安装后即存在(qt安装目录\ src\plugins\sqldrivers\mysql)找到即可。

在编译之前,安装mysql需注意在安装时选择定制安装,这时选中安装Libs和Include文件(之后编译时需要include中的头文件和lib中的libmysql.lib文件)。


另外由于在mysql安装过程中使用默认的文件夹名字的话必定存在空格,而QT不识别含有空格的路径(这里会相继出现两种错误:首先mysql中的include文件和lib文件在执行qmake时有错误(步骤见下面),这个问题可通过将Libs和Include文件拷到c盘下自己新建的一个文件夹(只要没有空格)下可以解决,然后在执行上述语句时将其改成自己的文件路径)。但是另一个问题是会出现在qt与mysql连接时出现

“"Can't connect to MySQL server on 'localhost' (10061) QMYSQL: Unable to connect"”

错误,这就是mysql安装路径下含有空格使qt无法与其通信。我之后从新安装mysql到C盘并将其路径定义为没有空格就解决了。

所以mysql安装的话最好没有空格,所有和QT有关系的软件都不要有空格,并且最好在c盘的一级路径下。

见本人下一篇文章(younghz)

你可能感兴趣的:(qt,经验)