文档章节

Qt5 QSqlDatabase: QMYSQL driver not loaded

ferrysu
 ferrysu
发布于 2017/04/13 10:27
字数 808
阅读 175
收藏 0

针对情况,qt支持mysql,但是找不到mysql驱动,我报的错误是:

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

环境是ubuntu16 qt版本是qt6

通过查看qt文档,找到了安装方法,但是安装中也是缺各种文件,一下是文档中的安装方法

文档中写的很明确,需要自行编译 mysql.pro 需要告诉 mysql的头文件位置等

按照文档操作 遇到了很多问题

缺少mysql.h,-lssl,g++,libmysqlclient_r.so

缺少mysql.h这个问题很奇怪,我电脑有lnmp的环境,也就是mysql已经安装,后来索引了所有和mysql相关的安装包,找到了解决方案,因为每个人的环境不同,可能用的安装包也不同,我这次遇到的大多数问题都是因为 ubuntu的版本过高,导致很多软件包已经失效造成的。

root执行  apt-cache search all |grep mysql

结果很多,其中有一个 libmysql-ocaml-dev  ,安装

实际上我们 直接 apt 安装mysql的时候,并不包含安装包和编译需要的一些文件,只安装了mysql运行的必要文件,另外,如果你的mysql不是apt安装,而是自行下载编译安装的,应该不存存在缺少mysql.h的问题。安装完成后,  在/usr/include/mysql 有 mysql.h这个文件。

然后 去编译 mysql.pro ,注意包含文件夹 改成 /usr/include/mysql 和 /usr/lib 不出意外 qmak过程中不会出错,我很多环境中都编译过,qmake都没出错过,都是接下来的make会报错误。

二。然后make,报错 缺少 -lssl

这个根据每个人环境不用可能缺少不同文件,不论你缺少-l 哪种文件,都去apt中找就可以,方法

执行  apt-cache search all |grep lib文件名

大多数情况 都会找到一个  类似的文件 ,文件名各不相同 ,以dev结尾,不确定是哪个就把类似的都装上。

 

三。最后我遇到的是缺少 libmysqlclient_r.so 这个文件

这个文件根据环境不同,有些人不缺少,有些人根本找不到安装包。后来发现,ubuntu14版本是有这个安装包的,叫做  libmysqlclient-dev 。但是ubuntu16上并没有这个安装包,强制安装虽然也能装上,但是只有 libmysqlclient.so 而没有 libmysqlclient_r.so

  尝试安装了以下包

libmysql-cli-dev ,mysql-common ,mysql-client,libmysqlclient-dev,均没有找到

解决方案

首先 查找 libmysqlclient.so 这个文件

能够找到一个,如果你连这个文件都找不到,请自定去百度安装方法,我在所有安装过mysql的机器上,都没遇到过缺少这个文件,不论是apt安装还是编译安装。

然后在同目录下 创建软连接  ln -s libmysqlclient.so libmysqlclient_r.so

创建完后的文件列表。实际上 ,以前的ubuntu版本,安装libmysqlclient-dev后会自动创建这个软连接, 而不知哪个版本开始ubuntu 需要手动创建这个链接了。

执行 make,没有错误,然后执行make install 

再次运行自己写的文件,已经可以链接数据库了

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

ferrysu
粉丝 0
博文 2
码字总数 808
作品 0
潍坊
高级程序员
私信 提问
【问题解决】QSqlDatabase: QMYSQL driver not loaded

使用QT的QSqlDatabase操作数据库的时候提示一下信息 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7 确保有libqsqlmysql.......

陈昊Sevens
2014/03/19
0
0
用Qt Creator编程连接数据库的问题:QMYSQL driver not loaded

刚入手QT没多久,在连接 数据库时遇到一 问题。 代码如下: 然后 编译老是报错: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE build error! 但 mysq...

lee.qiao
2012/05/04
3.4K
0
Ubuntu12.04下使用QT4.8连接MySQL找不到驱动

运行QT程序显示: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE 于是百度了下,大多数说缺少 libqt4-sql-mysql sudo apt-get install libqt4-sql-mys......

流年逝水
2014/06/29
417
2
运维调试记录:QSqlDatabase: QMYSQL driver not loaded

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/42971003 在Qt 5.3中使用数据库连接时,弹出下面的错误: 从上面的错误可以看出,...

adoryn
2015/01/21
0
0
qt链接mysql,驱动装好了,但是程序中打开数据库出错。。。

主要程序如下: //数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("studentinfo"); db.setUserName("root"); db.se......

欧阳峰
2013/06/04
703
3

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
8
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
2
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部