QT之Mysql驱动
错误现象
找不到Mysql驱动
QSqlDatabase: QMYSQL driver not loaded
一、驱动查看
在程序中直接打印QT Creator中现有的驱动,打印方式如下:
qDebug() << "Database driver has: " << QSqlDatabase::drivers();
打印如下所示:

二、QT Creator中添加Mysql驱动
打开 mysql.pro 工程
在路径“Qt5.12.9\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql”路径中可以找到,如下图所示:

更改mysql.pro文件,添加以下代码:
#这个主要是添加.h依赖文件使用
INCLUDEPATH += "C:\Program Files (x86)\MySQL\MySQL Server 5.7\include"
#添加依赖的.lib文件
LIBS += -L "C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib" -llibmysql
#生成DLL文件的存放目录
DESTDIR = ../mysql/mysqlDll
如下图所示:

更改qsqldriverbase.pro文件,添加以下代码:
#方便找到准确的qtsqdrivers-config.pro
include(./configure.pri)
如下图所示:

编译

编译完成后,会在指定的路径下生成相应的.dll文件,如下图所示:

将生成的文件拷贝至QT Creator路径中
将编译qsqlmysql.dll和qsqlmysqld.dll文件拷贝到Qt5.12.9\5.12.9\mingw73_32\plugins\sqldrivers文件中, 如下图所示:

将Mysql路径下的文件拷贝到QT creator路径中
将MySQL\MySQL Server 5.7\lib路径下的libmysql.dll和libmysql.lib文件,拷贝到Qt5.12.9\5.12.9\mingw73_32\bin文件中,如下图所示:

重启QT Creator软件后,即可完成Mysql驱动的添加
注意:在添加Mysql过程中注意版本,32位和64位软件对应的路径也有差异。
三、linux环境下的QT驱动
在linux环境下缺少MySQL驱动时,处理办法和windows类似,只是路径稍微有点区别。在linux需要变成生成libqsqlpsql.so库文件
确保linux环境下已经安装mysql,安装方式如下
sudo apt-get update
sudo apt-get install mysql-server
在路径 "/opt/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/mysql" 中找到 mysql.pro 文件,如下图所示:

注意: 自己的安装路径,不一定是在opt路径下使用
sudo vim mysql.pro更改mysql.pro文件,添加以下代码:#这个主要是添加.h依赖文件使用
INCLUDEPATH += /usr/include/mysql
#添加依赖的.lib文件
LIBS += -L /usr/lib/x86_64-linux-gnu -lmysqlclient
#生成DLL文件的存放目录
DESTDIR = ../mysql/mysqlSO如下图所示:

在路径 "/opt/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers" qsqldriverbase.pri 文件,添加以下类容
#方便找到准确的qtsqdrivers-config.pro
include(./configure.pri)
如下图所示:

在路径 "/opt/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/mysql" 中进行编译,如下图所示

将编译生成的 libqsqlmysql.so 和 libqsqlmysql.so.debug 拷贝至 /opt/Qt5.12.9/5.12.9/gcc_64/plugins/sqldrivers 下,重启 QT Creator即可
编译过程中可能出现缺少mysql.h文件,在已经安装 mysql-server 的情况下,使用以下命令即可
sudo apt-get install libmysql++-dev
参考文献
QSqlDatabase QMYSQL driver not loaded 原因以及解决办法(总结):https://blog.csdn.net/Lvcxiao/article/details/118631612
QT之Mysql驱动的更多相关文章
- Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)
一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载, ...
- windows下编译qt的mysql驱动
windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\M ...
- QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)
2010/04/23:Fixes : 更新批处理,以兼容WIN7. 第一次系统地玩QT,于是诞生了此预备式: [QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1. ...
- QT编译Mysql驱动问题及解决方案
默认情况下,qt 并没有自带mysql的数据库插件,需要自己编译先安装mysql server ,运行setup.exe时选择自定义安装,安装目录设为"D:\mysqldev"不要 ...
- QT的MYSQL驱动库编译
QT的MYSQL驱动库编译 需要准备QT的源码Src,此次编译64位 在QTCreator中打开mysql.pro 修改两个pro 文件,下图为改好 1.mysql.pro TARGET = qsql ...
- QT编译mysql驱动
一. 下载mysql C链接库 地址:http://dev.mysql.com/downloads/ 根据当前系统选择下载: 二. 安装下载好的mysql驱动文件 注意,一定要安装在不含有中文.空格以 ...
- centos7下编译qt的mysql驱动
在编译mysql驱动之前,首先要安装mysql,可以使用yum安装,这里将不再介绍. 在将qt和mysql都安装好之后,首先找到mysql的头文件以及他的共享库,我的mysql是使用yum安装的,头文 ...
- centos 下Qt安装 mysql驱动(亲测可行)
(前半部分没有试过,因为我的有mysql驱动,实在抱歉) 1.预防万一,先安装一下mysql-devel(一定要装!). 不安装的话后面编译会出现找不到-lmysqlclient的问题. 2. 开始编 ...
- Mac下Qt连接MySQL 驱动问题
Mac OS X下Qt的mySQL driver编译安装 原创文章,采用CC协议发布,转载请注明: 转载自canX.me 本文链接地址: Mac OS X下Qt的mySQL driver编译安装 – ...
- qt mysql驱动问题解绝
传统解决方法:一.解决问题 本文解决在Ubuntu16.04系统下,Qt5无法连接MySQL数据库的问题(Qt5缺少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsq ...
随机推荐
- uniapp热更新和整包更新思路
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 我们知道,在打包Android App之前,我们需要先通过HX生成打包资源.如果是通过cli创建的项目,则通过以下命令生成打包资源: ya ...
- java代码输出控制台输出菱形
private static void rhombFuncation() { int row = 3; for (int i = 1; i <= row; i++) { for (int row ...
- Scala 不可变Map
1 package chapter07 2 3 object Test08_ImmutableMap { 4 def main(args: Array[String]): Unit = { 5 // ...
- #KM算法#UVA11383 Golden Tiger Claw
题目 给定 \(n*n\) 的矩阵,现在给每行安排一个权值 \(x_i\),给每列安排一个权值 \(y_j\), 使得 \(x_i+y_j\geq a_{i,j}\),并且使 \(\sum_{i=1} ...
- #轮廓线dp#洛谷 1879 [USACO06NOV]Corn Fields G
题目 分析 考虑状压dp在\(n\leq 21\)的情况下会TLE, 设\(dp[n][m][S]\)表示当前正在处理\((n,m)\)这个格子 并且轮廓线状态为\(S\)的方案数, 考虑可行状态最多 ...
- 技术文档指南:版本说明、网站文案、FAQ、案例研究与内容优化
Release Notes 和产品公告 Release Notes 通常是软件文档的一部分,是在新产品发布时提供给用户的简短.高级摘要.它们包含有关更新的重要信息,包括新功能.增强功能.错误修复,通常 ...
- pip提示升级pip版本
今天在进行pip安装库的时候发现下面出现一段黄色的字体,如下图: 自由翻译: 大概意思就是说我现在安装的pip的版本是 20.0.2,最新版本是 20.1,希望我可以更新到最新的版本,并告诉了我怎么安 ...
- openGauss Cluster Manager RTO Test
一.环境介绍 软件环境 类别 版本 下载链接 备注 OS openEuler 20.03 (LTS) https://repo.openeuler.org/openEuler-20.03-LTS/IS ...
- 深入解析C++的auto自动类型推导
关键字auto在C++98中的语义是定义一个自动生命周期的变量,但因为定义的变量默认就是自动变量,因此这个关键字几乎没有人使用.于是C++标准委员会在C++11标准中改变了auto关键字的语义,使它变 ...
- Spark常见的问题以及解决方案
Spark为什么比Hadoop要快? Spark比hadoop快的原因,我认为主要是spark的DAG机制优于hadoop太多,spark的DAG机制以及RDD的设计避免了很多落盘的操作,在窄依赖的情 ...