Qt连接MySQL的问题解决方法
Qt5在连接MySQL数据库时会出现一些问题,本文介绍两种最常见的问题,以及其相对简单的解决办法。
Qt5数据库支持列表里没有MySQL
输入以下代码查看支持的数据库类型
//打印支持的数据库类型
qDebug()<<QSqlDatabase::drivers();
现象:

可以发现支持的数据库列表里没有"QMYSQL",打开Qt5.X.X\5.X.X\mingwXX_XX\plugins\sqldrivers会发现缺少下面两个文件:

原因:较低版本的Qt5是不带MySQL驱动的,也就是没有qsqlmysql.dll和qsqlmysqld.dll这两个文件,需要自己手动编译进行添加。
解决办法1:从Qt5.8开始(具体有待考证)后就默认自带MySQL驱动了(目前更新最快的5.1.4是不带MySQL驱动的),所以大家可以自己升级到5.8以上的版本,问题就可以解决,推荐5.9这个长期支持版本。
解决办法2:自己手动进行编译驱动文件或者下载对应的别人编译好的驱动文件添加进去。编译可参考官网sql-driver
QMYSQL drive not loaded
输入以下代码进行数据库连接
//连接数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("hll523811");
db.setDatabaseName("db");
if(db.open()==false){
qDebug()<<"打开失败"<<db.lastError().text();
}
现象:

出现经典问题:QMYSQL drive not loaded
原因:Qt5.X.X\5.X.X\mingwXX_XX\bin\缺少MySQL的lib文件,所以不可用
解决方法:打开mysql-X.X.XX-winxXX\lib复制libmysql.dll到Qt5.X.X\5.X.X\mingwXX_XX\bin\即可


注意:
1. libmysql.dll文件必须匹配相应使用的MySQL版本
2. 32位QT复制的是32位的MySQL里的libmysql.dll,64位也对应64位
3. 不同版本的MySQL里面包含不同的libmysql.dll, 不同的libmysql.dll必须和配套的qsqlmysqld.dll qsqlmysql.dll一起才能正常工作
Qt连接MySQL的问题解决方法的更多相关文章
- QT连接MySQL
Qt 连接MySQL 是件很简单的事,但也有可能很不简单. QT给我们的提示只有 QMYSQL driver not loaded,让我们毫无头绪.访问其他数据库也可以用同样的方法解决. Qt 访问 ...
- Linux系统下 解决Qt5无法连接MySQL数据库的方法
Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...
- CentOS下php使用127.0.0.1不能连接mysql的解决方法
这篇文章主要介绍了CentOS下php使用127.0.0.1不能连接mysql的解决方法,本文原因是SELINUX导致的连接失败,需要的朋友可以参考下 php代码很简单: 复制代码代码如下: $ser ...
- vs连接mysql出错解决方法
vs连接mysql出错解决方法 先按以下的步骤配置一下: **- (1)打开VC6.0 工具栏Tools菜单下的Options选项.在Directories的标签页中右边的"Show dir ...
- QT连接mysql中文显示问题
亲测OK! #vim /etc/mysql/my.cnf [mysqld]下面加入: default-character-set=utf8 重启mysql /etc/init.d/mysql rest ...
- Java/JSP程序连接不上Mysql驱动问题解决方法
错误提示: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader$1.run(URLCla ...
- python3.4连接mysql数据库的方法
python3.4连接mysql数据库的方法 发布时间:2014-08-04编辑:www.jbxue.com 本文介绍了python3.4连接mysql数据库的方法,在python3.4中不能用mys ...
- QT连接多种数据库f方法及测试
QT提供了对多种数据库的访问支持,对SQL Server也可以通过ODBC来进行访问.要想顺利访问SQL Server. 首先要保证以下几点:1. QT编译时已经编译了QtSql2. 编译了ODBC插 ...
- Qt连接mysql数据库遇到QMYSQL driver not loaded
本文件向各位博友分享一下我在Qt开发过程中,连接mysql数据库时遇到的问题,以及解决的方法,希望对遇到同样问题的博友有所帮助. 工程运行环境:vs2015+Qt5.8 在开发过程中,编写数据库连接函 ...
- .NET连接MySQL数据库的方法实现
突然对.NET连接MySQL数据库有点兴趣,于是乎网上到处找资料,学习MySQL的安装,MySQL的使用等等等等,终于搞定了! 最终效果就是显示数据库中数据表的数据: 首先,当然要有MySQL数据库啦 ...
随机推荐
- Datahub新版本0.9.1更新,列级别数据血缘功能发布!
大家好,我是独孤风. 近期Datahub进行了一次大的版本更新,从0.9版本以后Datahub也正式发布了列级别数据血缘的功能. 0.9.1版本又增加了,列的影响分析这个功能. 这样Datahub对于 ...
- [BitSail] Connector开发详解系列三:SourceReader
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 Source Connector 本文将主要介绍负责数据读取的组件SourceReader: SourceRead ...
- PPT 用图片轻松做出高大上的精修
PPT 用图片轻松做出高大上的精修 图片留白充分 图片很花 文字和图片中间,插入一个透明背景 单图片型 放大+色块 左右分割 上下分割 用一个容器 图形结合 多图型 图片并列
- MongoDB 副本模式,会映射到本地 127.0.0.1 错误
基于 MongoDB 读写分离--Windows MongoDB 副本集配置 ,里面配置了一个坑,导致出现下列错误 [2021-05-10 10:06:11.981] [cluster-Cluster ...
- MongoDB 内存占用过大
不同的版本配置项可能不同:本文使用的 mongodb-win32-x86_64-2012plus-4.2.11-signed.msi mongod.cfg 默认占用内存为 0.5*(物理内存-1)如 ...
- Flask中本地代理的使用
本地代理 当请求到来时应用上下文和程序上下文被推入本地栈中,全局变量current_app,request,g,session都可以使用了.以current_app为例,current_app代表的是 ...
- RabbitMQ--工作模式
单一模式 即单机不做集群 普通模式 即默认模式,对于消息队列载体,消息实体只存在某个节点中,每个节点仅有 相同的元数据,即队列的结构 当消息进入A节点的消息队列载体后,消费 者从B节点消费时,rabb ...
- 如何在CSDN上如何快速转载博客
复制粘贴应该是最显而易见的方法,但是不仅会有丢失内容,而且格式也会丢失.要想达到更好的效果,可以从html源码入手. 1.在chrome浏览器中打开要转载的文章,右键选择检查(or使用F12) 2.在 ...
- Visual Studio 2022 激活码
Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterprise: VHF9H-NXBBB-638P6-6JHCY-88JWH Key 来自网络 备忘...
- Hystrix 实现服务熔断与降级
本文为博主原创,未经允许不得转载: 目录: 1. 服务雪崩,服务熔断,服务降级概念 2. Hystrix 概念 3. Hystrix 使用及默认配置 4. @HystrixCommond 注解使用 5 ...