• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    通过Qt连接OpenGauss数据库的详细教程

    1 安装软件

     2 准备连接环境

    在openGauss所在的root环境下执行下列步骤

    2.1 修改数据库的pg_hba.conf文件

    在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件: PARAM name=“dataNode1” value="/gaussdb/data/db1" />。

    cd /gaussdb/data/db1
    vi pg_hba.conf

    输入“:90”找到对应位置,然后输入“i”切换到INSERT模式,将“host all all 192.168.0.132/32 trust”修改为“host all all 192.168.0.132/32 sha256”。

    将以下内容添加进pg_hba.conf文件,完成后按下“Esc”键,退出INSERT模式,输入“:wq”后回车保存。

    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    host    all    all    192.168.0.19/32    sha256
    host all all 0.0.0.0/0 sha256
    # IPv6 local connections:
    host    all             all             ::1/128                 trust

    使用omm用户登陆,使用gs_ctl将策略生效。

    su - omm
    gs_ctl reload -D /gaussdb/data/db1/

    返回结果为:

    [2020-07-23 15:39:55.398][71828][][gs_ctl]: gs_ctl reload ,datadir is -D "/gaussdb/data/db1"
    server signaled

    注:如果之前没有启动过数据库,返回结果如下,继续操作即可:

    [2021-04-27 17:02:59.640][15354][][gs_ctl]: gs_ctl reload ,datadir is /gaussdb/data/db1
    [2021-04-27 17:02:59.640][15354][][gs_ctl]:  PID file "/gaussdb/data/db1/postmaster.pid" does not exist
    [2021-04-27 17:02:59.640][15354][][gs_ctl]: Is server running?

    2.2 使用omm用户登陆数据库,给dbuser用户授权,并退出数据库

    gsql -d postgres -p 26000 -r
    
    postgres=# alter role dbuser sysadmin;
    ALTER ROLE
    
    postgres=# \q

    2.3 修改数据库监听地址

    在GS_HOME中,本实验中数据库GS_HOME设置的为/gaussdb/data/db1。

    cd /gaussdb/data/db1
    vi postgresql.conf

    输入“:60”找到对应位置,然后输入“i”切换到INSERT模式,将listen_addresses的值修改成为*,修改后按下“Esc”键,退出INSERT模式,输入“:wq”后回车保存。

    #listen_addresses = '192.168.0.19'              # what IP address(es) to listen on;
    listen_addresses = '*'

    修改完成后重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。

    gs_ctl restart -D /gaussdb/data/db1/

    3 Windows下配置ODBC数据源

    Windows操作系统自带ODBC数据源管理器,无需用户手动安装管理器便可直接进行配置。

    3.1下载客户端GaussDB(for openGauss)驱动程序并进行安装

    下载地址:GaussDB驱动程序
    在本地(例如D:/download)下载ZIP文件后进行解压缩,解压缩后文件如下。

    由于本实验openGauss安装在ECS(openEuler ARM)上,所以进入Euler2.8_arm_64文件夹,显示如下:

    解压缩GaussDB-Kernel-V500R001C10-Windows-Odbc.tar.gz文件,显示如下:

    点击psqlodbc_x86.msi进行安装:

    默认设置,直到安装完毕。

    3.2 打开驱动管理器

    在配置数据源时,请使用对应的驱动管理器(假设操作系统安装盘符为C盘,如果是其他盘符,请对路径做相应修改):
    64位操作系统上进行64位程序开发,安装64位驱动程序后,使用64位的驱动管理器:C:\Windows\System32\odbcad32.exe 或者直接使用“控制面板 > 管理工具 > ODBC 数据源(64 位)。

    3.3 配置数据源

    在打开的驱动管理器上,选择“用户DSN > 添加 > PostgreSQL Unicode(x64)”,然后进行配置:


    Data Source:openGauss (数据源名称,可以自定义)。
    Database:postgres (需要连接的Datebase名称)。
    Server:openGauss数据库服务器的公网IP,请根据实际情况填写。
    Pot:26000 (端口号)。
    User Name:dbuser (连接数据库的用户名,不能使用omm用户,需要在数据库中创建)
    Password:dbuser用户的密码,请根据实际情况填写。

    3.4 验证并保存设置

    点击Test,显示 Connection successful 表示设置成功:

    点击保存:



    配置成功!

    3 Qt安装

    下载好 qt-opensource-windows-x86-5.14.2.exe后,无脑next就行。但有一点需要注意。打勾的必须选上!打勾的必须选上!打勾的必须选上!

    4 创建一个Qt工程

    不会创建的童鞋可以参考qt创建工程教程。
    注意!Kit必须选64bit的


    为了使用sql,还必须在xxx.pro下面添加:

    QT += sql

    接下来就可以愉快的测试了!
    修改main.cpp文件,代码如下:

    #include "gsql.h"
    #include QSqlDatabase>
    #include QStringList>
    #include QDebug>
    #include QMessageBox>
    #include QtSql>
    #include QSqlQuery>
    #include QApplication>
    #include iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        gsql w;
        w.show();
        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    	QString dsn = QString::fromLocal8Bit("xxxx");//你在2.3中配置的Data Source,例如openGauss
    	qDebug()"ODBC connect?"db.isValid();
        db.setHostName("xxxx.xxxx.xxxx.xxxx");//你的IP地址
        db.setDatabaseName(dsn);
        db.setUserName("xxx"); //用户名
        db.setPassword("xxxx");//密码
        db.setPort(26000); //opengauss端口号为26000
        if(!db.open())
        {
            qDebug()db.lastError().text();
            QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());
            return;
        }
        else
            qDebug()"database open success!";
        return a.exec();
    }

    显示结果如下,就说明连接成功。否则,会弹出报错提示。

    总结

    如果不成功,可能的原因:

    1. Qt 的MinGW选的不是64位的
    2. ODBC没有按照要求配置

    以上就是通过Qt连接OpenGauss数据库的详细教程的详细内容,更多关于Qt连接OpenGauss数据库的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • docker配置openGauss数据库的方法详解
    • QT连接Oracle数据库并实现登录验证的操作步骤
    • PyQt中使用QtSql连接MySql数据库的方法
    • ubuntu linux下使用Qt连接MySQL数据库的方法
    上一篇:JMeter对数据库的查询操作步骤详解
    下一篇:Navicat15安装教程超详细步骤(最靠谱)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    通过Qt连接OpenGauss数据库的详细教程 通过,连接,OpenGauss,数据库,