Qt连接MySQL数据库教程

本文介绍了在Qt环境下,编译MySQL驱动并解决'QMYSQLdriver not loaded'错误的方法。通过检查libmysql.dll依赖项,发现并复制缺失的系统库到C:WindowsSystem32目录下,成功解决了驱动加载问题。此外,强调了测试数据库连接时需确保数据库已创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.环境:

MySQL:8.0(C:\Program Files\MySQL\MySQL Server 8.0,64位)、VS2017(社区版,D:\Microsoft Visual Studio\2017)、Qt5.14.2,使用MSVC64位(D:\Qt\Qt5.14.2\5.14.2\msvc2017_64)

2. 编译驱动

可以查看这篇博文:

Qt 编译MySQL数据库驱动——MSVC版本icon-default.png?t=LBL2https://blog.csdn.net/LclLsh/article/details/122305347

 如果连接数据库(下面这条语句后面加个断点)

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

依旧出现“QSqlDatabase: QMYSQL driver not loaded”,请看下面的步骤。

3. 解决依赖问题

上面这种情况部分人说软件版本32位、64位的问题,我不予置评。经过大量查看博文、经验贴、论坛,结合自己的尝试,发现一种方法,也许不适合你,但你值得尝试一下。

使用Dependencies软件查看 libmysql.dll 这个动态库的依赖项是否完整。

 从下图可以看到,出现问号感叹号的就是缺少的依赖项,这个缺少的情况根据每个人的电脑情况而异。我这个是处于缺少依赖的情况,虽然磁盘中有,但是路径问题或是其他问题导致无法识别。

 

 根据Dependencies的检测情况,发现依赖项都位于C:\Windows\System32目录下,使用Everything查找缺少的依赖,将缺少的依赖从MySQL的安装目录下(bin或lib目录)找到,复制到C:\Windows\System32。

再次运行程序,发现没有“QSqlDatabase: QMYSQL driver not loaded”这个问题了。

win7及以前的的系统可以使用链接:Dependency Walker,不过很久没有更新了。win10使用会无响应,因此建议使用

链接:Dependencies,这是开源的、基于Dependency Walker写的。希望看源码、自己编译的,可以下载源代码。下面的位置是下载应用程序。

 下载解压后,运行DependenciesGui.exe。使用方法很简单,直接拖文件进去或者打开一个dll文件。具体使用方法可以看看其他博文,有的博文提供百度网盘链接。

Everything链接:Everything

4. 测试连接

相应的头文件这里就不展示了,代码如下:

	QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
	db.setHostName("localhost"); // 数据库服务器IP,我用的是本地电脑
	db.setDatabaseName("test");// 数据库名,需要提前在数据库中建立对应的数据库
	db.setUserName("root");// 用户名
	db.setPassword("123456");// 密码
	db.setPort(3306);// 端口号
	if (db.open())
		qDebug() << "success";
	else
		qDebug() << "fail";

需要特别注意:有些新手忘了在数据库中建立数据库,直接使用别人的代码,这会导致怎么都连不上。很多人在发经验贴的时候,也会下意识的忽略数据库中的设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值