环境介绍
系统:Win10 64位
Qt版本:Qt5.14
编译器:Qt5.14 MinGW 64-bit
数据库:MySql-8.0
特殊说明
数据库部署在服务器A,远程连接数据库的客户端需要运行在计算机B。
MySql8.0环境搭建方式见教程:https://blog.csdn.net/mokemg/article/details/105845093
准备工具
查找依赖的库工具:Dependencies
工具下载地址:https://github.com/lucasg/Dependencies/releases
如果此工具下载后无法使用,需要配置其环境,教程:https://blog.csdn.net/libaineu2004/article/details/89670726
1.项目pro文件加入sql模块
步骤1.双击pro文件,加入sql模块,Ctrl+S保存
2.连接数据库
步骤1.mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlQuery>
#include <QSqlError>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 打开MySQL
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.3.4");
db.setPort(3306);
db.setDatabaseName("moke");
db.setUserName("root");
db.setPassword("tjtp1243");
if (!db.open())
{
qDebug() << "Failed to connect to root mysql admin";
QMessageBox::about(NULL,"数据库错误",db.lastError().text());
}
else
{
qDebug() << "open";
QMessageBox::about(NULL,"数据库","数据库连接成功");
}
}
MainWindow::~MainWindow()
{
delete ui;
}
步骤2.编译
3.Qt程序打包发布
参照教程:https://blog.csdn.net/lxj434368832/article/details/80814388
注:此步骤打包发布的exe程序还不可以正确连接到远程数据库
4.将MySql动态库(libmysql.dll)拷贝至步骤4中打包的exe程序同级目录
步骤1.按下图路径找到MySql动态库,路径:C:\Program Files\MySQL\MySQL Server 8.0\lib(此路径为我安装MySql路径)
步骤2.将libmysql.dll拷贝至exe所在文件夹,如下图:
5.将MySql动态库(libmysql.dll)依赖库拷贝到打包好的exe程序文件中
用依赖库工具查询所需动态库,放置exe同目录即可
在MySQL数据库路径拷贝libmysql.dll动态库到exe路径
运行即可
步骤1.打开准备工具中下载好的查找依赖的库工具:Dependencies,双击执行“DependenciesGui.exe”
步骤2.打开“DependenciesGui.exe”后,File->Open
步骤3.找到上述拷贝到exe程序文件夹中的“libmysql.dll”,查找该动态库所依赖的其他库
如下图所示缺少libssl-1_1-x64.dll和libcrypto-1_1-x64.dll两个库
步骤4.用“Everything”工具查找上一步两个所需库,一般所需库文件在MySql安装路径下的bin文件夹下即可找到
Everything下载地址:https://www.voidtools.com/zh-cn/
Everything查找截图
步骤5.将上一步中查找到libmysql.dll所依赖的其他库拷贝打包好的exe程序文件夹中,如下图:
步骤6.此时发布的exe程序运行后可正常远程连接mysql数据库
源码下载
链接:https://download.csdn.net/download/mokemg/15477609?spm=1001.2014.3001.5503