Ubuntu16.0下运行Qt5.8.0连接不上mysql数据库的解决方法

参考文献:

【1】Qt 连接数据库出现的另一个错误

【2】Linux系统下Qt5无法连接MySQL数据库的解决方法

1.问题描述

当你在各种Linux版本下运行qt程序,发现连接mysql数据库出现以下错误:

QSqlDatabase: QMYSQL driver not loaded  
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

那么你可以参照上面的两个链接解决问题。

本文主要介绍的是以下几个小的tips。

2.几个Tips

2.1 更加轻松获得qt源码

有时候,我们在安装qt的时候,是不会选择“Sources”(源码)这个组件的,因为这样会使得安装过程很缓慢。所以一旦出现问题,又得重装,那样可是相当麻烦。但是现在需要重新编译qt关于连接mysql驱动的源码,那么我建议你直接在这里下载

http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/

上面可以根据不同的版本选择不同的源码,然后下载:如下图方框中的部分

Ubuntu16.0下运行Qt5.8.0连接不上mysql数据库的解决方法_第1张图片

下载解压之后,重名为qtbase。之后在文件夹Qt5.8.0/5.8下面,新建文件夹Src,并将qtbase拷贝到该目录下(这样做,都是为了与安装时自动下载保持一致)。如下图。

                                 Ubuntu16.0下运行Qt5.8.0连接不上mysql数据库的解决方法_第2张图片


2.2 如果提示没有“mysql.h"文件

需要安装“mysql-libmysqlclient-dev”,命令:

sudo apt-get install libmysqlclient-dev

2.3 找到新生成得libqsqlmysql.so位置

①注意make命令输出的最后几行,指出了生成的libqsqlmysql.so位置

②输入命令

sudo find / -name "libqsqlmysql.so"

然后注意文件的生成时间,新生成的,应该是最近的。

2.4 直接下载对应版本的编译完好的libqsqlmysql.so库文件

当然你可以直接下载别人编译好的库文件(ubuntu16.0+qt5.8.0连接mysql的库文件,但是,你必须保证版本一致,不然还是会有错误。所以上面的方法,基本可以解决自己的版本问题。


你可能感兴趣的:(qt)