前篇已经写了如何使用QT链接sqlite和SQLServer,见点击打开链接
本次主要说明如何通过QT链接MySQL数据库;
首先确保数据库中存在Mysql的驱动,详见QT安装目录中的plugins/sqldrivers文件夹下是否存在qsqlmysql.dll文件。
首先在xxx.pro工程文件中添加
- QT += sql
具体代码如下:
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
- // db.setDatabaseName("my.db");
- db.setHostName("128.110.110.110");
- db.setPort(3306);
- db.setDatabaseName("database");
- db.setUserName("root");
- db.setPassword("hello123");
- if (!db.open()) {
- QMessageBox::critical(0, "Cannot open database1",
- "Unable to establish a database connection.", QMessageBox::Cancel);
- return false;
- }
注意:有时候存在即使有Mysql的驱动,仍然报错
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
此时说明QT中自带的Mysql的驱动不依赖,需要自己重新编译。方法如下:当然可以参考这里点击打开链接
先去官网下载https://dev.mysql.com/downloads/connector/c/
文件是mysql-connector-c-6.1.10-win32(当然选择适合自己操作系统的压缩包)
之后解压,在路径中不要存在中文和空格,然后进入QT的安装源码目录中找到mysql的源码,进行编译,
具体位于\Src\qtbase\src\plugins\sqldrivers\mysql该处,之后打开QT的命令行,如图:
然后执行:
- cd C:\qt-everywhere-opensource-src-5.4.0\qtbase\src\plugins\sqldrivers\mysql\
- qmake "INCLUDEPATH+=C:\MySQL\MySQLServer5.5\include" "LIBS+=C:\MySQL\MySQLServer5.5\lib\libmysql.lib" -o Makefile mysql.pro
- mingw32-make
然后将Mysql的动态链接库
- C:\MySQL\MySQLServer5.5\lib\libmysql.lib
大功告成。开始QT的Mysql之旅吧。
致谢