ubuntu下qt5和数据库连接失败,报错QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE

Posted 别碰我的宏定义

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下qt5和数据库连接失败,报错QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE相关的知识,希望对你有一定的参考价值。

项目场景:ubuntu下qt5和数据库连接失败

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

问题描述

`提示:
在QT项目构建成功后遇到问题:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
表示未加载QMYSQL

原因分析:

提示:缺少依赖或者是qt与mysql的位数不同,一个32位,一个64位的。


解决方案:

提示:1.查看mysql的版本位数使用 mysql -V

我的是64位的,然后qt也是64位的,排除第一种可能。

提示:来到自己的qt的sqldrives目录下查看动态库是否都链接到了

通过ldd libqsqlmysql.so查看动态库连接情况,发现有一个库是not found

去下载缺少的这个依赖
https://launchpad.net/ubuntu/xenial/amd64/libmysqlclient18/5.6.25-0ubuntu1,复制连接去ubuntu下打开firefox粘进去出现如下页面(https://launchpad.net/ubuntu/xenial/amd64/libmysqlclient18/5.6.25-0ubuntu1)


然后下载,下载完成后,回到家目录下的Download也就是你下载文件的目录下,执行
sudo dpkg -i libmysqlclient18_5.6.25-0ubuntu1_amd64.deb然后去到qt下的sqldrives目录下再次ldd一次,你会发现缺少的库有链接了

问题到此解决,连接打开成功

下面是测试代码

最后一点记得在pro文件中加入 QT += sql
我的是QT += core gui sql,

以上是关于ubuntu下qt5和数据库连接失败,报错QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu15.04下QT5.4编译配置MySQL5.6.26连接驱动

Ubuntu15.04下QT5.4编译配置MySQL5.6.26连接驱动

QSqlDatabase: QMYSQL driver not loaded 解决方法(debug下正常,release下报错)

Qt 使用QSqlite数据库Release打包问题

Qt 使用QSqlite数据库Release打包问题

ubuntu 下安装oracle 11g r2 报错 [INS-20802] Oracle Database Configuration Assistant 失败