安装好QT5.6.2后,使用MYSQL时会出现如下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
针对上面问题,解决方法如下:传统解决方法:
一、解决问题
本文解决在Ubuntu14.04系统下,Qt5无法连接MySQL数据库的问题(Qt5缺少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsqlmysql库,如何用Qt5源码编译生成libqsqlmysql库)
二、问题现象
编译运行Qt连接MySQL数据库程序的时候,控制台会报如下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE
三、问题原因
用Qt连接MySQL,Qt会去加载libqsqlmysql.so动态库,如果加载不到或者加载的库有问题,都会导致Qt提示driver not loaded。
(1)加载不到:Qt安装目录下的sqldrivers目录中没有libqsqlmysql.so文件(我的路径:/opt/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers)
(2)库有问题:进入Qt的sqldrivers目录,执行“ldd libqsqlmysql.so”命令,会出现“libmysqlclient_r.so.16 => not found”等等not found提示,如下图:
四、解决方法
思路:自己手动编译mysql驱动的源码,生成libqsqlmysql.so库,然后把这个库拷贝到Qt的sqldrivers目录下
1、编译libqsqlmysql.so之前需要拿到Qt连接mysql驱动的源码,因此先去Qt官网下载Qt安装包qt-opensource-linux-x64-5.7.0.run
(1)打开网址:https://www.qt.io/,点击Download
(2)做一套选择题,一路选下去:
(也可以直接打开这个网址(可能失效):https://www.qt.io/download-open-source/,选View All Downloads)