一般有两种方法,一是使用mysql预留的接口,在qt中装相应的驱动;二是通过ODBC这个工具连接。本文采用ODBC连接。

第一步,在阿里云服务器的安全组中开放端口

实例—>安全组—>配置规则

手动添加,端口范围

端口是3306,源的意思是哪些可以访问到,这里可按需自选 

然后通过ssh连接服务器, 我们看一下服务器端口是否放开

先看一下mysql的运行状态

systemctl status mysql

如果没运行,就需要先运行

systemctl start mysql

下面命令列出开放的端口

firewall-cmd --list-ports

如果里面没有端口3306,那么就用以下命令开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

随后重启防火墙

systemctl restart firewalld.service 

注意!这里有些朋友使用的Xshell可能会断开与服务器的连接,这是因为Xshell默认设置的活动状态问题,修改为以下即可,随后在阿里云官网重启服务器(没断开不用管)

第二步,ODBC的配置

打开电脑上的ODBC,点击添加,我们选 MySQL ODBC 8.1 ANSI Driver

如果没有MySQL ODBC这个选项,去这里下载:(一般都是下载64位的)

MySQL :: Download MySQL Connector/ODBC (Archived Versions)icon-default.png?t=N7T8https://downloads.mysql.com/archives/c-odbc/

Data Soure Name填写自定义的数据源名称,后面连qt会用到

TCP/IP Server 填写你的服务器IP地址

Usr 填写用户名

Password填写密码

Database:注意这里!别点下拉框,会卡死,直接输入你在mysql中创好的数据库,然后点test

如果成功会出现:

第三步,qt测试代码

首先,在项目中的.pro文件中加上:

QT += sql

然后在主文件中,包含以下头文件:

#include <QMessageBox>
#include <QSqlDatabase>

写入以下代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("你的服务器IP");
    db.setPort(3306);
    db.setDatabaseName("之前起的数据源名称");
    db.setUserName("你的用户名");
    db.setPassword("你的密码");
    bool flag = db.open();
    if (flag){
        QMessageBox::information(this, "infor", "连接成功");
    }
    else {
        QMessageBox::information(this, "infor", 连接失败");
    }

如果出现连接成功,就大功告成了

Logo

鸿蒙生态一站式服务平台。

更多推荐