当前位置: 首页 > news >正文

Ubuntu 22.04 编译安装 Qt mysql驱动

参考自
Ubuntu20.04.3 QT5.15.2 MySQL驱动编译
Ubuntu 18.04 编译安装 Qt mysql驱动
下边这篇博客不是主要参考的, 但是似乎解决了我的难题(找不到 libmysqlclient.so)
ubuntu18.04.2 LTS 系统关于Qt5.12.3 无法加载mysql驱动,需要重新编译MYSQL数据库驱动的问题以及解决方案

系统版本

rain@rain-virtual-machine:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.3 LTS
Release:	22.04
Codename:	jammy

MySQL 肯定要先安装上, 我安装的是

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

然后安装依赖库

sudo apt install libmysqlclient-dev
// 不然找不到 usr/include/mysql 文件// 或者
sudo apt-get install mysql-client libmysqlclient-dev
// mysql-client是否需要安装我也不是很清楚,后续如果无法进行, 可以安装试试

可通过以下命令定位 libmysqlclient.so 的位置:

 sudo updatedb // 更新ubuntu的文件数据库,it may take a long timesudo locate libmysqlclient.so

执行完后一定要能查到 libmysqlclient.so , 否则没必要继续进行操作

rain@rain-virtual-machine:/usr/lib/x86_64-linux-gnu$ locate libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.21
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.35

为了查找到 libmysqlclient.so 我中间试了很多方法, 后来误打误撞执行成功了, 可能是因为执行了 sudo updatedb 或者安装了 mysql-client

下面进行正式的编译

1.首先找到QT的源码目录 , 例如 /home/rain/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql
rain是你当前的用户名, 路径也是根据你自己安装的Qt路径来
版本号(我的是5.15.2)下如果没有 Src 目录, 可以考虑重装 Qt 或者更新下载 Src

2.修改 mysql.pro 文件
在这里插入图片描述第 6 行的代码直接注释掉
然后添加两行代码, 这两行代码根据你安装的目录确定

INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient

例如我的
(1) 执行命令 whereis mysql

rain@rain-virtual-machine:/usr/lib/x86_64-linux-gnu$ whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

可以看到 /usr/include/mysql 路径

(2) 执行命令 locate libmysqlclient.so

rain@rain-virtual-machine:/usr/lib/x86_64-linux-gnu$ locate libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.21
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.35

3.点开 pri 文件, 然后注释掉第 4 行代码即可
在这里插入图片描述
4. 在 /home/rain/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql 目录下, 打开终端, 执行如下代码

 /home/rain/Qt/5.15.2/gcc_64/bin/qmake mysql.pro// 注意 rain是当前的用户名, 路径也是根据你自己安装的Qt路径来

5.然后mysql源码文件夹里多了个 MakeFile
在这里插入图片描述
然后 makemake install

rain@rain-virtual-machine:~/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql$ make Makefile
make: “Makefile”已是最新。rain@rain-virtual-machine:~/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql$ make install Makefile
输出省略

6.然后就可以在mysql前一个目录(sqldrivers)得到一个 plugins,打开里面的 sqldrivers 有两个文件, 就标志着编译成功了
在这里插入图片描述

7.然后将两个文件放入编译器的 /home/rain/Qt/5.15.2/gcc_64/plugins/sqldrivers 中, 大功告成~~

测试程序

pro 里加个 sql 模块

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>qDebug() << QSqlDatabase::drivers();                                     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");                   
db.setHostName("localhost");                                            
db.setUserName("root");                                                 
db.setPassword("1234");                                                 
db.setPort(3306);                                                       
db.setDatabaseName("mysql");                                             qDebug() << (db.open() ? "open db success." : "open db failed.");                                      QSqlQuery cursor;                                                        QString query = " SELECT user, host FROM user; ";                        if (cursor.exec(query)) {                                                while (cursor.next()) {                                              qDebug() << "user: " << cursor.value("user").toString()          << "host: " << cursor.value("host").toString();         }                                                                    
}                                                                        

相关文章:

Ubuntu 22.04 编译安装 Qt mysql驱动

参考自 Ubuntu20.04.3 QT5.15.2 MySQL驱动编译 Ubuntu 18.04 编译安装 Qt mysql驱动 下边这篇博客不是主要参考的, 但是似乎解决了我的难题(找不到 libmysqlclient.so) ubuntu18.04.2 LTS 系统关于Qt5.12.3 无法加载mysql驱动&#xff0c;需要重新编译MYSQL数据库驱动的问题以…...

Mindspore 公开课 - CodeGeeX

CodeGeeX: 多语言代码生成模型 CodeGeeX 是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现&#xff0c;在鹏城实验室“鹏城云脑II”中的192个节点&#xff08;共1536个国产昇腾910 AI处理器&#xff09;上训练而成。截至2022年6月22日&…...

说一下mysql的锁

1、全局锁: 影响整个数据库的锁。例如,当执行 FLUSH TABLES WITH READ LOCK; 命令时,会阻止其他用户写入数据库,但可以读取。全局锁简介 全局锁是一种跨所有数据库实例的锁。它可以确保在任何时刻,只有一个事务能够访问共享资源。全局锁通常用于以下场景: 并发性较高的场…...

rime中州韵小狼毫 日期/农历 时间 事件 节气 滤镜

教程目录&#xff1a;rime中州韵小狼毫须鼠管安装配置教程 保姆级教程 100增强功能配置教程 网络上但凡提到 rime中州韵小狼毫须鼠管输入法&#xff0c;总少不了智能时间&#xff0c;日期等炫技&#xff0c;可见这个便捷时间/日期输入功能是多么的受欢迎。作者也不落窠臼&…...

【前端】前后端的网络通信基础操作(原生ajax, axios, fetch)

概述 前后端网络请求工具 原生ajaxfetch apiaxios GET和POST请求 get只能发纯文本 post可以发不同类型的数据&#xff0c;要设置请求头&#xff0c;需要告诉服务器一些额外信息 测试服务器地址 有一些公共的测试 API 可供学习和测试用途。这些 API 允许你发送 HTTP 请求…...

Matter - 配置工厂数据(2)

部分关键名词参数简介 PASE(Passcode-Authenticated Session Establishment): 基于密码认证的会话建立&#xff0c;用于在 Commissioning 的时候 Commissioner 与 Matter Deivce 之间建立安全信道&#xff0c;生成对称加密密钥用于 Commissioning 后续通信消息进行加、解密和完…...

版本控制背景知识

版本控制背景知识 本文是关于 Git 系列文章的导读&#xff0c;我们先介绍一下版本控制的背景知识。 什么是版本控制 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。它将什么时候、什么人更改了文件的什么内容等信息如实记录下来…...

tensorflow报错: DNN library is no found

错误描述 如上图在执行程序的时候&#xff0c;会出现 DNN library is no found 的报错 解决办法 这个错误基本上说明你安装的 cudnn有问题&#xff0c;或者没有安装这个工具。 首先检测一下你是否安装了 cudnn 进入CUDA_HOME下&#xff0c;也就是进入你的cuda的驱动的安装目…...

DA14531-高级应用篇-用户如何开启OTA服务

文章目录 1. OTA相关文件2.OTA宏定义列表3.OTA主要函数接口4.OTA具体实施步骤5.总结1. OTA相关文件 1)app_suotar_task.c和app_suotar_task.h 2)app_suotar.c和app_suotar.h 2.OTA宏定义列表 宏定义注解CFG_PRF_SUOTAR用户开启SOTA功能BLE_SUOTA_RECEIVERSOTA功能服务CFG_S…...

国内镜像源配置方法(包括临时和永久方法)

国内镜像源&#xff1a; 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣 http://pypi.douban.com/simplePython官方 https://pypi.python.org/simple/v2ex http://pypi.v2ex.com/simple/中国科学院 http://pypi.mi…...

数据结构二叉树--堆(数据结构实现和堆排序的一种实现)

堆是一个数据结构 逻辑结构&#xff1a;完全二叉树&#xff08;要求父节点大于孩子节点或者小于孩子节点&#xff09; 存储结构&#xff1a;顺序存储 typedef int DataType; typedef struct Heap{DataType*data;int size;int capacity; }Heap;void InitHeap(Heap*pH) {asser…...

【Linux】 nohup命令使用

nohup命令 nohup是Linux和Unix系统中的一个命令&#xff0c;其作用是在终端退出时&#xff0c;让进程在后台继续运行。它的全称为“no hang up”&#xff0c;意为“不挂起”。nohup命令可以让你在退出终端或关闭SSH连接后继续运行命令。 nohup 命令&#xff0c;在默认情况下&…...

多维时序 | Matlab实现GRO-CNN-LSTM-Attention淘金算法优化卷积神经网络-长短期记忆网络结合注意力机制多变量时间序列预测

多维时序 | Matlab实现GRO-CNN-LSTM-Attention淘金算法优化卷积神经网络-长短期记忆网络结合注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现GRO-CNN-LSTM-Attention淘金算法优化卷积神经网络-长短期记忆网络结合注意力机制多变量时间序列预测效果一览基本介绍程序设…...

SQL-DQL-基础查询

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…...

Kubernetes (十三) 存储——持久卷-动静态分配

一. 简介 二. NFS持久化存储步骤&#xff08;静态分配&#xff09; 1. 集群外…...

order by之后的injection(sqllabs第四十六关)

order by相关注入知识 这一关的sql语句是利用的order by 根据输入的id不同数据排序不一样可以确定就是order by order by后面无法使用ubion注入&#xff08;靠找不到&#xff09; 可以利用后面的参数进行攻击 1&#xff09;数字 没作用考虑布尔类型 rand和select ***都可以 …...

C++ 树与图的广度优先遍历 || 模版题 :图中点的层次

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环。 所有边的长度都是 1 &#xff0c;点的编号为 1∼n 。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果从 1 号点无法走到 n 号点&#xff0c;输出 −1 。 输入格式 第一行包含两个整数 n 和 m 。 …...

k8s---pod控制器

pod控制器发的概念&#xff1a; 工作负载&#xff0c;workload用于管理pod的中间层&#xff0c;确保pod资源符合预期的状态。 预期状态&#xff1a; 1、副本数 2、容器重启策略 3、镜像拉取策略 pod出故障的出去等等 pod控制器的类型&#xff1a; 1、replicaset&#xf…...

2024.1.11力扣每日一题——构造有效字符串的最少插入数

2024.1.11 题目来源我的题解方法一 暴力模拟方法二 动态规划方法三 直接拼接方法四 计算组数 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2645 我的题解 方法一 暴力模拟 直接模拟&#xff0c;根据题意可知 若是abc则不用插入&#xff0c;若是ab,ac,bc这需要 插入一…...

软件测试|如何使用Selenium处理隐藏元素

简介 我们在使用selenium进行web自动化测试时&#xff0c;有时候会遇到元素被隐藏&#xff0c;从而无法对元素进行操作&#xff0c;导致我们的用例报错的情况。当我们遇到元素被隐藏的情况时&#xff0c;需要先对隐藏的元素进行处理&#xff0c;才能继续进行我们的操作&#x…...

第三次面试总结 - 吉云集团 - 全栈开发

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对专栏 “本人真实面经” 很感兴趣o (ˉ▽ˉ&#xff1b;) 专栏 —— 本人真实面经&#xff0c;更多真实面试经验&#xff0c;中大厂面试总结等您挖掘 目录 总结&#xff08;非详细&#xff09; 面试内…...

buuctf-Misc 题目解答分解118-120

118.[INSHack2017]sanity 打开压缩包就是一个md 文件 typora 打开 发现flag INSA{Youre_sane_Good_for_you} 119.粽子的来历 解压压缩包 &#xff0c;得到文件夹如下 用010 editor 打开 我是A.doc 这个有些可以 都改成FF 保存 然后再次打开 docx 文件就发现了屈原的诗 其他b…...

Hive数据定义(1)

hive数据定义是hive的基础知识&#xff0c;所包含的知识点有&#xff1a;数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍&#xff1a;数据仓库的创建、数据仓库的查询、…...

golang 反序列化出现json: cannot unmarshal string into Go value of type model.Phone

项目场景&#xff1a; 今天在项目公关的过程中&#xff0c;需要对interface{}类型进行转换为具体结构体 问题描述 很自然的用到了resultBytes, _ : json.Marshal(result)&#xff0c;然后对resultBytes进行反序列化转换为对应的结构体err : json.Unmarshal(resultBytes, &…...

【闯关练习】—— 1400分(构造)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;cf闯关练习 &#x1f48c;其他专栏&#xff1a; &#x1f534;每日一题 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓…...

Qt QProgressBar进度条控件

文章目录 1 属性和方法1.1 值1.2 方向1.3 外观1.4 信号和槽 2 实例2.1 布局2.2 代码实现 QProgressBar是进度条控件&#xff0c;进度条用来指示任务的完成情况 1 属性和方法 QProgressBar有很多属性&#xff0c;完整的可查看帮助文档。这里以QProgressBar为例&#xff0c;列出…...

【新】Unity Meta Quest MR 开发(一):Passthrough 透视配置

文章目录 &#x1f4d5;教程说明&#x1f4d5;配置透视的串流调试功能&#x1f4d5;第一步&#xff1a;设置 OVRManager&#x1f4d5;第二步&#xff1a;添加 OVRPassthroughLayer 脚本&#x1f4d5;第三步&#xff1a;在场景中添加虚拟物体&#x1f4d5;第四步&#xff1a;设置…...

快速排序【hoare版本】【挖坑法】【双指针法】(数据结构)

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中 的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右子序列中所有元素均…...

class_5:在c++中一个类包含另一个类的对象叫做组合

#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是&#xff1a;"<…...

Linux - No space left on device

问题描述 No space left on device 原因分析 说明在服务器设备上的存储空间已经满了&#xff0c;不能再上传或者新建文件夹或者文件等。 解决方案 确认查看服务器系统的磁盘使用情况是否是真的已经没有剩余空间&#xff0c;复制下面命令在服务器上运行&#xff0c;然后发现如果…...

公司没网站怎么做dsp/百度竞价排名广告定价

连接查询分类&#xff1a; sql92标准&#xff1a;仅仅支持内连接 sql99标准&#xff1a;【推荐使用这种做法】 按功能分类&#xff1a; 内连接&#xff1a;等值连接、非等值连接、自连接 外连接&#xff1a;左外连接、右外连接、全外连接 交叉连接&#xff1a;笛卡尔积 …...

武汉网站建设_网页设计_网站制作_网站建设公司_做企业网站公司/如何自己建个网站

“积极思维”更像是一个为完美人士所设计的梦幻。而“消极思维”则为那些内心尚不完美&#xff0c;还存在种种心理缺陷的人提供安全感和情感支持。 消极思维有时候会发挥出相当正面的力量 人们在生活里&#xff0c;总是会鼓励那些失去希望的人们&#xff1a;要想开点儿&#xf…...

wordpress自定义字段/视频号推广方法

ArchLinux Gnome3 Wayland wine-wechat微信多开方法由于市面上使用deepin-wine-wechat的好多&#xff0c;但是deepin-wine-wechat启动慢并且有黑框&#xff0c;于是我尝试了archlinuxcn中的wine-for-wechat和wine-wechat组合使用&#xff0c;最为明显的是没有黑框了&#xff0c…...

网站制作免费软件/ciliba磁力搜索引擎

来博客园写WF主题博客已经3年了, 在园子里认识了很多朋友,也学了很多知识.看到园子现在的气氛不太好,我很着急,但唯一能做的就是写点技术文章以感谢博客园为我们提供这么好的交流环境 从WinFX到NET3.x再到NET4.0 ,WPF,WCF,WF 始终是放在一起的,WPF(silverlight)用于程序UI的展现…...

泉州网站的建设/产品推广文案

对于大多数Web设计师和开发人员而言&#xff0c;测试是工作的重要组成部分。 他们将投入大量时间&#xff0c;以确保其网站在各种浏览器中看起来相似甚至相同。 但是&#xff0c;站点测试的一个关键部分似乎经常被遗忘&#xff1a;字体堆栈测试。 问题 大多数网站设计师在很大程…...

手机网站模版 优帮云/推广赚钱软件排行

如果你想从头学习Jmeter&#xff0c;可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 约定响应时间&#xff0c;响应时间如果超出约定&#xff0c;则断言为失败 断言持续时间 断言持续时间界面介绍 只需要填写预期的运行时间就行了 结…...