QT5.13 + MYSQL8.0 环境搭建

QT5.13 + MYSQL8.0 环境搭建

  • 包含用于解决MYSQL driver not loaded错误
  • 1、QT安装
  • 2、MySQL安装
  • 3、编译驱动
  • 4、拷贝库文件
  • 5、编译测试

包含用于解决MYSQL driver not loaded错误

1、QT安装

1.1 QT下载地址:http://download.qt.io/archive/qt/
1.2 安装时候注意,将QT源码同时安装。
QT5.13 + MYSQL8.0 环境搭建_第1张图片

2、MySQL安装

2.1 官网下载MySQLhttps://dev.mysql.com/downloads/mysql/
2.2 安装方法:
解压后在mysql根目录下新建Data文件夹和my.ini文件。
my.ini文件内容如下

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\mysql
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

2.3 以管理员权限运行cmd,进入mysql\bin,运行mysqld --initialize --console
安装服务mysqld --install
启动服务mysqld --install

3、编译驱动

3.1 用QT打开:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
3.2 直接编译,会报错。
在这里插入图片描述
3.3 修改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
include(../qsqldriverbase.pri)
LIBS += -LC:/mysq/lib/ -llibmysql
INCLUDEPATH += C:/mysql/include
DEPENDPATH += C:/mysql/include



3.4 编译后会在磁盘根目录下plugins找到编译出的文件。
我的是C:\plugins\sqldrivers.
QT5.13 + MYSQL8.0 环境搭建_第2张图片

4、拷贝库文件

4.1 打开3.4路径,复制路径下的所有文件到以下路径
C:\Qt\Qt5.13.0\5.13.0\mingw73_64\plugins\sqldrivers
4.2 复制以下路径
C:\mysql\lib里的 libmysql.dll 和 libmysql.lib 到以下路径
C:\Qt\Qt5.13.1\5.13.1\mingw73_64\bin
4.3 复制以下路径
C:\Program Files\MySQL\MySQL Server 8.0\bin
里的 libeay32.dll 和 ssleay32.dll 到以下路径
C:\Qt\Qt5.13.1\5.13.1\mingw73_64\bin

5、编译测试

首先在xxx.pro工程文件中添加:

QT       += sql

在相应文件中引入相关头文件

#include 
#include 
#include 
#include 
#include
#include 

代码部分

    QString hostName = "localhost";   // 主机名
    QString dbName = "mysql";   // 数据库名称
    QString  userName = "root";   // 用户名
    QString password = "helloworld";   // 密码
    
    QSqlDatabase dbconn = QSqlDatabase::addDatabase("QMYSQL");
    dbconn.setHostName(hostName);
    dbconn.setDatabaseName(dbName);
    dbconn.setUserName(userName);
    dbconn.setPassword(password);
    if(dbconn.open())
    {
         qDebug()<<("MySQL Open Succeed!");
    }
    else
    {
         qDebug()<<("MySQL Open failed!");
         QSqlError error = dbconn.lastError().text();
         qDebug() << error.text();
    }
    dbconn.close();

成功则提示:

MySQL Open Succeed!

[参考文档]https://stackoverflow.com/questions/51943259/deploy-qt-mysql-application

你可能感兴趣的:(QT)