Ubuntu16.04 64位 Qt5.10.1中使用mysql

问题:连接mysql数据库时,出现如下 提示: 
QSqlDatabase: QMYSQL driver not loaded 
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7 

db open err: “Driver not loaded Driver not loaded”

解决方案1:

先看看第8条,如果不行在采用方案2。

解决方案2: 
1、sudo apt-get install libmysqlclient-dev 
2、进入QT安装目录的源码目录(如果安装 时没有选择源码,重新安装下),找到MySql驱动源码目录 

如:/home/csgec/Qt5.10.1/5.10.1/Src/qtbase/src/plugins/sqldrivers/mysql 

执行(红色字体的路径要根据自己电脑的情况而定):

sudo /home/csgec/Qt5.10.1/5.10.1/gcc_64/bin/qmake “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient” mysql.pro

如果出错: 

qtsqldrivers-config.pri没找到

就是为了搞定这个文件的,花了我一下午的时间,后来查看了官网的信息知道,这个文件一般是没有源文件的,需要后期编译生成,官网:http://doc.qt.io/qt-5/sql-driver.html

Ubuntu16.04 64位 Qt5.10.1中使用mysql_第1张图片

因此需要现在驱动源码目录sqldrivers中运行上面两行代码。

这两行代码的意思:1、链接安装好的MySQL头文件,2、生成qtsqldrivers-config.pri文件

1、第一步执行得先确定自己的MySQL的头文件在哪里,不一定是默认路径/usr/local

例如:/usr/include/mysql

例如:sudo /home/csgec/Qt5.10.1/5.10.1/gcc_64/bin/qmake -- MYSQL_PREFIX=/usr/include/mysql

可以通过sudo find / -name mysql.h来定位自己的头文件位置

2、第二步如果不能执行make sub-mysql,建议先执行sudo make然后再sudo make install,再继续make sub-mysql

这几步操作完成后就会生成qtsqldrivers-config.pri文件了

3、继续到mysql源代码目录下执行第一步的qmake操作

sudo /home/csgec/Qt5.10.1/5.10.1/gcc_64/bin/qmake “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient” mysql.pro

4、之后的的sudo make和sudo make install都没问题了

生成的库所在的目录: ../plugins/sqldrivers/ 
5、把生成的libqsqlmysql.so拷贝到安装目录,如下: 
cd ../plugins/sqldrivers/ 

cp libqsqlmysql.so /home/csgec/Qt5.10.1/5.10.1/gcc_64/plugins/sqldrivers

6、问题解决

7、最后提醒一下如果还不行建议ldd libqsqlmysql.so看看还有那些动态库没有找到,例如libmysqlclient.so.18 not found

这个可以自己在电脑中find一下这个lib在哪里,然后把找的lib copy到系统库下例如/usr/lib/x86_64-linux-gnu/

8、所以回头一想一开始就ldd libqsqlmysql.so把不能找的的lib全部copy到/usr/lib/x86_64-linux-gnu/下就不用浪费那些时间了

你可能感兴趣的:(QT,MySQL)