Linux(Ubuntu 19.10)下 Qt5 连接 MySQL(QMYSQL driver not loaded)

Linux(Ubuntu 19.10)下 Qt5 连接 MySQL

  1. 安装好 MySQL 和 Qt

  2. Qt 连接 MySQL 的代码

    QSqlDatabase d=QSqlDatabase::addDatabase("QMYSQL");//加载mysql驱动,这个字符串是固定的
    d.setHostName("127.0.0.1");
    d.setDatabaseName("mysql");        //数据库名称
    d.setPort(3306);                     //数据库端口,如果没有更改/etc/mysql/my.cnf就不用改
    d.setUserName("root");
    d.setPassword("123467");
    if(d.open())qDebug()<<"数据库连接成功";
    elseqDebug()<<"数据库连接失败";
    

    运行后发现报错:

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

    原因是没有 MySQL驱动 或 MySQL 驱动版本不对,驱动放在/home/junebao/Qt/5.14.2/gcc_64/plugins/sqldrivers:

    有两个文件:

    1. libqsqlmysql.so.debug
    2. libqsqlmysql.so

    这两个文件不存在或版本与 Qt 版本不匹配都会导致上面的错误

解决 QMYSQL driver not loaded

官方文档:

UTOOLS1590741069581.png

  1. ~/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers 目录下 执行 qmake -- MYSQL_PREFIX=/usr/local

    • ~/Qt/5.14.2是 Qt 的下载目录

    • usr/local是 MySQL 的安装目录

    • 如果出现qtbase/src/plugins/sqldrivers/sqldrivers.pro:16: Unknown test function: qtConfig 是因为默认链接的 qmake可能是 Qt4 的,可以使用 Qt5 qmake 的完整路径执行:~/Qt/5.14.2/gcc_64/bin/qmake -- MYSQL_PREFIX=/usr/local

  2. 执行 make sub-mysql

    • make 的过程中可能会缺依赖,缺啥下啥就好了
  3. 执行完后在~/Qt/5.14.2/Src/qtbase/plugins/sqldrivers目录(和上面不是同一个目录)下会出现libqsqlmysql.so.debuglibqsqlmysql.so两个文件

    • 如果这一步没有生成那两个文件,回到第一步试着执行~/Qt/Qt5.14.2/5.11.2/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" mysql.pro
  4. 把他们复制到/home/junebao/Qt/5.14.2/gcc_64/plugins/sqldrivers下面就好了

环境

  • OS:Ubuntu 19.10.1(64位)
  • Qt: 5.14.2
  • MySQL: 8.0.20

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wpf 数据绑定简介、实例1

简介&#xff1a;1.WPF绑定使用的源属性必须是依赖项属性&#xff0c;这是因为依赖项属性具有内置的更改通知支持&#xff0c;元素绑定表达式使用了Xaml扩展标记&#xff0c; WPF绑定一个控件是使用Binding.ElementName, 绑定非控件对象时使用Source,RelativeSource,DataContex…

【设计模式 04】代理模式

代理模式 代理模式( Proxy)&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 参考&#xff1a;refactoringguru | proxy 什么是代理模式 有时候如果想要访问某个对象&#xff0c;但又没办法直接访问或不方便直接访问&#xff0c;可以使用代理模式&#xff0c;代理…

css 大于号 标签_CSS设计基础选择器篇

点击上方 Java项目学习 &#xff0c;选择 星标 公众号重磅资讯、干货&#xff0c;第一时间送达前言&#xff1a;如果将CSS样式应用于特定的网页对象上&#xff0c;需要先找到目标元素。在CSS样式中执行这一任务的部分被称为选择器。1 标签选择器优点&#xff1a;为页面中同类型…

crontab 提示 command not found 解决方案

crontab 提示 command not found 解决方案 今天遇见一个问题&#xff0c;crontab的定时任务会报错&#xff1a;java command not found&#xff0c;但是手动执行脚本一直能成功。 猜想是环境变量的问题。 在crontab里添加个打印环境变量的任务&#xff1a; * * * * * echo $PAT…

【设计模式 05】工厂方法模式

工厂方法模式 define an interface or abstract class for creating an object but let the subclasses decide which class to instantiate. 参考&#xff1a; refactoringguru | factory-methodjavatpoint | factory-method-design-pattern博客园| 工厂方法 简单工厂的问题 …

LinkedList类源码浅析(二)

1、上一节介绍了LinkedList的几个基本的方法&#xff0c;其他方法类似&#xff0c;就不一一介绍&#xff1b; 现在再来看一个删除的方法&#xff1a;remove(Object o) remove方法接受一个Object参数&#xff0c;这里需要对参数做空与非空处理&#xff1b; 但是删除一个Object元…

2016OSC源创会年终盛典-综合技术专场-张小刚

2019独角兽企业重金招聘Python工程师标准>>> 综合技术专场 讲师/SPEAKERS 张小刚 网易云负载均衡项目负责人 《网易蜂巢负载均衡技术实践》从网易蜂巢中的实践出发&#xff0c;分享网易蜂巢负载均衡服务从无到有&#xff0c;从私有云到公有云过程中的技术实践。重点…

mysql 日期

数据类型 数据类型格式date YYYY-MM-DD datetime YYYY-MM-DD HH:MM:SS timestamp YYYY-MM-DD HH:MM:SS year YYYY 或 YY 具体实现的函数 1、now() 返回当前的日期和时间 SELECT NOW(); 2、curdate() 返回当前的日期 SELECT CURdate(); 3、curtime&#xff08;&#xff09;返回当…

超完整的 Chrome 浏览器客户端调试大全

2019独角兽企业重金招聘Python工程师标准>>> 引言 “工欲善其事&#xff0c;必先利其器” 没错&#xff0c;这句话个人觉得说的特别有道理&#xff0c;举个例子来说吧&#xff0c;厉害的化妆师都有一套非常专业的刷子&#xff0c;散粉刷负责定妆&#xff0c;眼影刷负…

MySQL 为什么用索引,为什么是 B+树,怎么用索引

MySQL 索引 A database index is a data structure that improves the speed of operations in a table. Indexes can be created using one or more columns, providing the basis for both rapid random lookups and efficient ordering of access to records. 为什么需要索…

Servlet 生命周期、工作原理

Servlet 生命周期&#xff1a;Servlet 加载--->实例化--->服务--->销毁。init&#xff08;&#xff09;&#xff1a;在Servlet的生命周期中&#xff0c;仅执行一次init()方法。它是在服务器装入Servlet时执行的&#xff0c;负责初始化Servlet对象。可以配置服务器&…

【Go 并发控制】上下文 context 源码

Context 在 Go 服务中&#xff0c;往往由一个独立的 goroutine 去处理一次请求&#xff0c;但在这个 goroutine 中&#xff0c;可能会开启别的 goroutine 去执行一些具体的事务&#xff0c;如数据库&#xff0c;RPC 等&#xff0c;同时&#xff0c;这一组 goroutine 可能还需要…

iOS开发UI篇—模仿ipad版QQ空间登录界面

一、实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构&#xff0c;分为home和login两个部分 3.登陆界面的设置 &#xff08;1&#xff09;设置第一个控制器和自定义的控制器类&#xff08;登陆&#xff09;关联 &#xff08;2&#xff09…

oracle中scn(系统改变号)

系统scn&#xff1a; select checkpoint_change# from v$database; 文件scn&#xff1a; select name,checkpoint_change# from v$datafile; 结束scn&#xff1a; select name,last_change# from v$datafile; 数据文件头部scn…

三个数相减的平方公式_快收好这份小学数学公式大全!孩子遇到数学难题时肯定用得上...

必背定义、定理公式1.三角形的面积&#xff1d;底高2 公式 S&#xff1d; ah22.正方形的面积&#xff1d;边长边长公式 S&#xff1d; aa3.长方形的面积&#xff1d;长宽公式 S&#xff1d; ab4.平行四边形的面积&#xff1d;底高公式 S&#xff1d; ah5.梯形的面积&#xff1d…

add.attribute向前端传_前端知识-概念篇

1、一次完整的HTTP事务是怎样的一个过程&#xff1f;基本流程&#xff1a;a. 域名解析b. 发起TCP的3次握手c. 建立TCP连接后发起http请求d. 服务器端响应http请求&#xff0c;浏览器得到html代码e. 浏览器解析html代码&#xff0c;并请求html代码中的资源f. 浏览器对页面进行渲…

【数据库】一篇文章搞懂数据库隔离级别那些事(LBCC,MVCC)

MySQL 事务 文章比较长&#xff0c;建议分段阅读 后续如果有改动会在 Junebao.top 之前对事务的了解仅限于知道要么全部执行&#xff0c;要么全部不执行&#xff0c;能背出 ACID 和隔离级别&#xff0c;知其然但不知其所以然&#xff0c;现在觉得非常有必要系统学一下&#xff…

api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享

前言&#xff1a;一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API源码获取&#xff1a;关注头条号转发文章之后私信【秒杀】查看源码获取方式&#xff01;项目的来源项目的来源于国内IT公开课平台,质量没的说,很适合学习一些技术的基础,…

Golang 定时任务 github/robfig/cron/v3 使用与源码解析

Cron 源码阅读 robfig/cron/v3 是一个 Golang 的定时任务库&#xff0c;支持 cron 表达式。Cron 的源码真实教科书级别的存在&#xff08;可能是我菜 …&#xff09;,真的把低耦合高内聚体现地淋漓尽致&#xff0c;另外其中涉及的装饰器模式&#xff0c;并发处理等都很值得学习…

修改 cmd 字体为 Consolas

windows 下的 cmd 窗口默认的字体有点难看&#xff0c;长时间使用操作 node.js 有点小疲劳&#xff0c;可以修改注册表替换字体为 Consolas&#xff0c;并且可以全屏 cmd 窗口&#xff0c;代码如下&#xff1a; Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Conso…