linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法

经过鄙人baidu,好像从QT 5.7开始,默认没有mysql驱动,都是要自己手动编译了,所以需要我们在QT官网下载源码,自己生成驱动文件在放入QT的数据库文件夹中

QT无mysql驱动

今天想使用QT程序连接一下mysql数据库,却报错:

QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

环境 Deepin 20

QT 5.15

Qt Creator

qmake

下载QT源文件

确定qmake

找到自己qmake的位置

kang@kang-PC:~$ whereis qmakeqmake: /usr/bin/qmake

查看qmake版本:

kang@kang-PC:~/Downloads/qt-everywhere-src-5.15.1/qt-everywhere-src-5.15.1/qtbase/src/plugins/sqldrivers/mysql$ /usr/bin/qmake -vqmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

我这里好像是qmake位置不正确,于是我直接加路径运行qmake(当然,你也可以修改一下usr/bin的qmake或像我一样图省事):

~/Downloads/qt-everywhere-src-5.15.1/qt-everywhere-src-5.15.1/qtbase/src/plugins/sqldrivers/mysql$ ~/Software/Qt/5.15.0/gcc_64/bin/qmake -vQMake version 3.1Using Qt version 5.15.0 in /home/kang/Software/Qt/5.15.0/gcc_64/lib

编译mysql驱动

解压缩之后,我们进入到mysql驱动项目的目录下:~/Downloads/qt-everywhere-src-5.15.1/qt-everywhere-src-5.15.1/qtbase/src/plugins/sqldrivers/mysql

这个要根据你自己的解压位置确定

修改mysql.pro:

vim mysql.pro

修改完成如下图所示:

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第1张图片 第一块红色的include可以像我一样填写

第二块红色的QMAKE_USE需要注释掉

第三块红色的INCLUDEPATH和DEPENDPATH需要根据你的实际情况填写 我是因为apt搜不到mysql,所以安装了mariadb的dev包

sudo apt-get install libmariadb-dev

如果执行qmake命令过程中遇见错误

Cannot read qtsqldrivers-config.pri: No such file or directory

我们需在mysql.pro找到qsqldriverbase.pri的位置

f4b7ec248635ea56af132ae7c688eaf9.png

我这里很明显告诉我qsqldriverbase.pri文件在上一级目录,接下来打开qsqldriverbase.pri文件,内容如下图:

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第2张图片

我们只需要注释上图红色选中部分即可

保存并执行qmake命令:

qmake "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro

命令执行完后,我们会在目录下看到一个Makefile文件,执行sudo make

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第3张图片

当执行完命令后,我们可以在控制台打印信息中看到生成的驱动文件位置:

aefdb666052a8b018129d84bd7ef61f2.png

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第4张图片

此时,我们将编译好的so文件复制到QT目录下的对应位置即可,一般都是{QT install path}/{版本}/gcc_64/plugins/sqldrivers

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第5张图片

测试

修改pro文件

修改项目pro文件Hello.pro,在QT +=后面追加sql

658ffb5c261d85c76682181bfa427a18.png

测试数据库连接

添加数据库连接代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("ptdb.dakapath.com");db.setDatabaseName("dakapath2");db.setUserName("root");db.setPassword("Dapath888$");if(!db.open()) //如果数据库打开失败,会弹出一个警告窗口{ QMessageBox::warning(NULL, "警告", "数据库打开失败");}else{ qDebug() << "Database open successed!";}

linux qt mysql驱动_Linux下QT 5.15无MySQL数据库驱动解决方法_第6张图片

显示数据库连接成功了!!!

你可能感兴趣的:(linux,qt,mysql驱动)