问题如图:
编辑
第一眼看见这张图我也觉得很奇怪,显示有QMYSQL但是又说没有,这不自相矛盾吗!
这种很可能是你的QT是带着驱动的,但是缺少一些关键文件(自己的猜想),所以运行不起来,我们去下载即可,根据我们编译器的位数,由图可见我的位数是32,我下载了一个文件
https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-win32.zip
上面的是迅雷的下载连接
编辑
将这两个文件移动到你Qt所缺的地方 C:\Qt\Qt5.11.1\5.11.1\mingw53_32\bin
编辑
这是我所缺的路径,如果不知道怎么查看就按照我这个步骤试试,指不定奇迹就来了。
当然还有一些密码的问题,那个网络上有很多教程,大家可以搜一搜。
至此,大功告成。
QT连接MYSQL简易流程:
在Qt中连接MySQL数据库,通常需要以下几个步骤:
1. 安装MySQL数据库和MySQL驱动
确保你的系统上已安装了MySQL数据库服务器,并且它是运行状态。对于Qt应用来说,还需要MySQL的Qt驱动(QMYSQL),这个驱动可能不会随Qt安装包自动安装,需要手动配置或编译。
2. 确保驱动可用
在开始编写代码之前,你需要确认Qt环境中已经包含了MySQL的驱动。可以通过以下代码片段在程序中检查可用的数据库驱动:
Cpp
1#include <QtSql> 2#include <iostream> 3 4int main() { 5 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 6 QStringList drivers = QSqlDatabase::drivers(); 7 for (const QString &driver : qAsConst(drivers)) { 8 std::cout << "Available driver: " << driver.toStdString() << std::endl; 9 } 10 return 0; 11}
如果QMYSQL
没有出现在输出的驱动列表中,你需要按照以下步骤添加MySQL驱动。
3. 添加MySQL驱动到Qt
对于Windows:
- 确保你的Qt和MySQL位数匹配(都是32位或都是64位)。
- 将MySQL安装目录下的
libmysql.dll
复制到Qt的bin
目录下。 - 如果使用Qt Creator,确保MySQL的开发库(如
libmysql.lib
)在项目设置的库路径中。
对于Linux:
- 安装MySQL开发库,通常通过包管理器如
apt-get install libmysqlclient-dev
(Ubuntu/Debian)或yum install mysql-devel
(RPM-based系统)。 - 在你的
.pro
文件中添加如下行: - Makefile
1QT += sql 2LIBS += -L/path/to/mysql/libs -lmysqlclient 3INCLUDEPATH += /path/to/mysql/include
- 确保替换路径为实际的MySQL库和头文件路径。
- 如果Qt源代码中包含MySQL驱动源码,需要编译该驱动。进入
qtbase/src/plugins/sqldrivers/mysql
目录,然后执行qmake和make。
对于MacOS:
- 类似于Linux,需要安装MySQL开发库。
- 在Qt项目中正确配置路径。
4. 编写连接代码
在确保驱动可用后,你可以使用以下示例代码来连接MySQL数据库:
Cpp
1#include <QCoreApplication> 2#include <QtSql> 3#include <QDebug> 4 5int main(int argc, char *argv[]) { 6 QCoreApplication a(argc, argv); 7 8 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 9 db.setHostName("localhost"); // 或数据库服务器地址 10 db.setDatabaseName("your_database_name"); 11 db.setUserName("your_username"); 12 db.setPassword("your_password"); 13 14 if (!db.open()) { 15 qDebug() << "Cannot open database:" << db.lastError().text(); 16 return 1; 17 } else { 18 qDebug() << "Connected to database!"; 19 // 这里可以执行SQL查询、插入等操作 20 } 21 22 return a.exec(); 23}
记得替换上述代码中的数据库名、用户名和密码为实际值。
完成以上步骤后,你的Qt应用程序应该能够成功连接到MySQL数据库并执行数据库操作了。如果遇到问题,检查错误信息,确认MySQL服务是否运行,以及网络、权限等因素是否正常。