遇到问题:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
很明显缺驱动呗,但是百度了很久缺没有解决问题,所以整理记录一下。方法简单来说就是把libqsqlmysql.so放到qt的安装目录的sqldrivers文件夹下,如Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers中,进入该目录发现果然没有libqsqlmysql,可能是qt为了推广自己的数据库sqlite吧。那么这个libqsqlmysql.so如何获取?最靠谱的方法还是源码编译。
1 安装qt时勾选源码
2 进入qt安装目录中的Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/mysql路径,修改mysql.pro文件。
INCLUDEPATH+=/usr/include/mysql
LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient
3 注释文件Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri中的include那行。
4 在mysql文件夹中执行qmake。如果提示缺目录则手动创建并赋权。
5 执行make。注意看最后给出的位置信息,如../plugins/sqldrivers,即Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers
6 这个文件放到目录Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers后,就OK了。
参考文献: