Qt安装MYSQL驱动

发布时间:2024年01月23日

Qt安装MYSQL驱动

1 Qt配置MySQL驱动

在使用Qt连接数据库前需要确定当前Qt支持的数据库驱动模块有哪些。

1.1 Qt数据库驱动

Qt SQL模块是Qt提供的一个访问数据库的接口,支持多种平台下使用不同类型的数据库,在这个过程中,数据库驱动负责与不同的数据库进行通信。

1.1.1 Qt支持的数据库驱动

QDB2、QIBASE、QMYSQL、QOCI、QODBC、QPSQL、QSQLITE2、QSQLITE、QTDS

1.1.2 如何查看当前版本Qt所支持的数据库驱动

  1. 新建项目,在.pro文件中添加 QT += sql
  2. 在.cpp文件中,添加如下代码
    qDebug() << QSqlDatabase::drivers();
    
  3. 运行程序,在 应用程序输出栏 中观察结果

2 安装MYSQL驱动 – MinGW编译器

2.1 下载MYSQL

https://dev.mysql.com/downloads/mysql/

将MySQL的环境C:\Program Files\MySQL\MySQL Server 8.1\bin添加到环境变量中。

2.2 拷贝libmysql.dll和libmysql.lib文件

1)打开MySQL的安装目录下的lib文件夹,如:C:\Program Files\MySQL\MySQL Server 8.1\lib;
2)将该文件夹下的libmysql.dll和libmysql.lib文件拷贝到Qt的MinGW编译器的bin文件夹下,如:F:\QT\5.12.6\mingw73_64\bin

2.3 编译qsqlmysql.dll文件

1)需要利用QT的源码进行编译,在QT安装时需要选择 Source 来选择安装源码,此时在QT目录下可以找到 Src 文件夹;
2)进入 Qt安装目录Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql 文件夹,打开 mysql.pro 文件,进行修改;

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin

#mysql的lib路径
LIBS += -L$$quote(C:/Program Files/MySQL/MySQL Server 8.1/lib) -llibmysql

#mysql的include路径
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.1/include)

#mysql的include路径
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.1/include)

include(../qsqldriverbase.pri)

2.4 构建并运行该文件

将当前编译器调整为MinGW编译器,构建.pro文件后运行,出现以下对话框即为编译成功:

如果构建过程中出现该错误:Cannot read xxx/qtsqldrivers-config.pri:No such file or directory,可不用管,直接运行。

2.5 复制qsqlmysql.dll和qsqlmysqld.dll文件

在QT的同级目录下,会出现 plugins 的文件夹,里面有刚刚编译好的库文件,将其中的qsqlmysql.dllqsqlmysqld.dll文件复制到MinGW编译器的plugins\sqldrivers目录下。

此时MYSQL驱动即安装成功,可以在项目中使用 QSqlDatabase::drivers() 查看。

2.6 参考

安装MySQL驱动详细流程

3 安装MYSQL驱动 – MSVC编译器

3.1 下载MYSQL

3.2 拷贝libmysql.dll和libmysql.lib文件

1)打开MySQL的安装目录下的lib文件夹,如:C:\Program Files\MySQL\MySQL Server 8.1\lib;
2)将该文件夹下的libmysql.dll和libmysql.lib文件拷贝到Qt的MSVC2017_64编译器的bin文件夹下,如:F:\QT\5.12.6\msvc2017_64\bin

3.3 编译qsqlmysql.dll文件

1)需要利用QT的源码进行编译,在QT安装时需要选择 Source 来选择安装源码,此时在QT目录下可以找到 Src 文件夹;
2)进入 Qt安装目录Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql 文件夹,打开 mysql.pro 文件,进行修改;

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin

#mysql的lib路径
LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.1/lib) -llibmysql

#mysql的include路径
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.1/include)

#mysql的include路径
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.1/include)

include(../qsqldriverbase.pri)

3.4 构建并运行该文件

将当前编译器调整为MSVC2017_64编译器,构建.pro文件后运行,出现以下对话框即为编译成功:

3.5 可能遇到的问题

Cannot read xxx/qtsqldrivers-config.pri:No such file or directory

不用管,直接运行。

msvc-version.conf loaded but QMAKE_MSC_VER isn`t set

在MSVC2017_64编译器的目录F:\QT\5.12.6\msvc2017_64\mkspecs\common下打开msvc-version.conf文件,添加:
QMAKE_MSC_VER = 1900

...
#
# Version-specific changes
#
QMAKE_MSC_VER = 1900

isEmpty(QMAKE_MSC_VER): error("msvc-version.conf loaded but QMAKE_MSC_VER isn't set")

MSVC_VER = 8.0
...

3.6 复制qsqlmysql.dll、qsqlmysqld.dll文件

在mysql的同级目录下会生成plugins文件,里面有刚编译好的qsql文件,即F:\QT\5.12.6\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers 目录下的 qsqlmysql.dllqsqlmysqld.dll文件 复制到MSVC2017_64编译器的plugins\sqldrivers目录下。

文章来源:https://blog.csdn.net/qq_33021529/article/details/135104162
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。