Qt远程连接MySQL

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Qt远程连接MySQL脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

基于项目需求,现需要在Windows环境下使用Qt项目远程连接Ubuntu下的MySQL数据库。

一、

Qt在5.12版本后下载不再自带QMYSQL 驱动,所以如果要使用QMYSQL驱动需要自己编译。

1. 打开官方提供文件sqldrivers.pro

文件所在路径为D:Qt5.15.2Srcqtbasesrcpluginssqldrivers

D:Qt是我的Qt的安装目录,如果没有找到Src文件夹,则使用Qt的MaintenanceTool.exe在选择组件时选中Source。

Qt远程连接MySQL

2. 下载mysql-connector-c-6.1.11源码

下载地址:https://downloads.mysql.com/archives/c-c/

下载对应位数版本的源码,

注意,使用的Qt版本和数据库MySQL的版本位数必须相同,既要么都是32位,要么都是64位。

3. 编译源码

3.1 修改.pro文件

Qt远程连接MySQL

 

 

注释掉 QMAKE_USE += mysql语句,不然会报错找不到

添加库文件路径LIBS和 头文件路径(直接复制过来的路径是 ,需要修改成 / )

指定编译后的结果文件存放的地方 DESTDIR

3.2 修改qsqldriverbase.pri文件

该文件中有这么一句

include($$shadowed($$PWD)/qtsqldrivers-config.pri)

但是在Qt的文件夹中并不能找到该文件,会报错。但是,我们可以在文件夹中找到configure.pri文件。所以,修改上面语句:

#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include (./configure.pri)

3.3 编译程序

在Debug模式下编译或Release模式。

(笔者在Debug下编译成功但没有结果文件,在Release下编译成功得到结果文件

Qt远程连接MySQL

 

 

3.4 移动dll文件

将结果文件中的两个DLL文件移动到你的Qt目录下, D:Qt5.15.2msvc2019_64pluginssqldrivers(笔者用的msvc)

3.5 在Qt中查看可用的SQL 驱动

qDebug() << QSqlDatabase::drivers();

4. 远程连接MySQL数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");   //选择使用的QSql Driver
    db.setHostName("192.168.1.229");                    //远程连接的数据库IP地址
    db.setPort(3306);                      //数据库提供的端口
    db.setUserName("xxx");                             //远程连接的用户
    db.setPassword("xxx");                            // 密码
    db.setDatabaseName("0voice");                        //要访问的数据库
    // db.setConnectOptions("SSL_KEY=client-key.pem;SSL_CERT=client-cert.pem;SSL_CA=ca-cert.pem;CLIENT_IGNORE_SPACE=1");
    if(!db.open())
    {
        qDebug() << db.lastError().text();
    }else
    {
        qDebug() << "连接成功";
        return ;
    }

需要在MySQL的数据库中有可用于远程访问的用户。

MySQL8.0版本默认的加密方式是caching_sha2_password。但是很多客户端很难支持,笔者在数据库配置中将密码加密方式改为了mysql_native_password。

5. SSL问题

ubuntu下的MySQL8.0默认开启远程连接SSL。

所以远程连接需要处理SSL。

 

脚本宝典总结

以上是脚本宝典为你收集整理的Qt远程连接MySQL全部内容,希望文章能够帮你解决Qt远程连接MySQL所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数据库