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

1 安装软件

  • qt-opensource-windows-x86-5.14.2.exe(之前的版本可能不行,安装过程中必须包含MinGW64)
  • OpenGauss
  • ODBC

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数据库的资料请关注我们其它相关文章!

(0)

相关推荐

  • ubuntu linux下使用Qt连接MySQL数据库的方法

    环境说明: ubuntu 10.04.2 QtSDK (1.5G安装包的那个) mysql5.1 1.安装MySQL Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好.直接在软件中心搜mysql,把client和server选上. server在安装时会提示为root用户设置密码,设一个好了. 我使用的是mysql5.1版本,用户名密码存储在一个叫mysql的数据库里,只有管理员级别才能看到. 如果直接在终端中输入 mysql,可能会提示ERROR 1045 (280

  • PyQt中使用QtSql连接MySql数据库的方法

    PyQt 有内置的数据库连接类 QtSql . 在使用 PyQt 连接 MySql 展示数据时,如果明确所有数据库操作都与 Qt 窗口有关,且不涉及复杂的数据操作,则可以使用内置的 QtSql 类.不需要安装额外的数据库类,且能更加便利的与 QtTableView 等 Qt 控件进行数据交互. 初始化 db = QtSql.QSqlDatabase.addDatabase('QMYSQL') db.setHostName('localhost') db.setDatabaseName('dev'

  • QT连接Oracle数据库并实现登录验证的操作步骤

    目的: 本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和密码(MD5加密)是否和数据库一致,如果一致则提示登录成功. 开发环境:Windows10+QT5.14.2+Oracle11G R2 操作步骤: 1.打开QT软件,创建一个新的Application项目 2.设计界面并修改代码: 2.1修改项目配置文件,添加sql字符串表示要对数据库进行操作. 2.2登录界面LoginForm设计 2.3编写登录界面代码 LoginForm.h代码如下: #ifndef LO

  • docker配置openGauss数据库的方法详解

    For Windows User 在docker中使用openGauss 拉取openGauss镜像 在控制台输入 docker pull enmotech/opengauss:latest 等待下载 中途可能会出现卡住的情况.可以按Ctrl+C之后重新运行拉取镜像的的指令.直到所有都显示Download complete 如果实在是下载不了就给docker换个源 打开C盘下的用户(或者User)文件夹–>点开当前用户对应的用户文件夹–>找到.docker文件夹 编辑其中的daemon.jso

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

    1 安装软件 qt-opensource-windows-x86-5.14.2.exe(之前的版本可能不行,安装过程中必须包含MinGW64) OpenGauss ODBC 2 准备连接环境 在openGauss所在的root环境下执行下列步骤 2.1 修改数据库的pg_hba.conf文件 在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件:< PARAM name=&quo

  • Java连接mysql数据库的详细教程(推荐)

    该教程是面向那些不知道如何通过java连接mysql数据库的新手,所以该教程用的方法不是最优的方法,但求是最好理解的方法. 需要的工具: eclipse.mysql.mysql的驱动 mysql驱动链接:mysql-connector-java-5.1.7.zip 如果该链接下载不了的话,可以私信我 1.在eclipse中创建一个工程:jdbc 2.在工程下创建lib文件夹 鼠标右键点击jdbc工程 --> New -->Folder. 文件夹命名为lib 3.导入mysql驱动 解压上述连接

  • Java的idea连接mongodb数据库的详细教程

    最近有一个java实验,要求用java使用数据库,于是本人新手小白,在idea上卡了好半天 希望看到这个博客的人能解决问题,跳过一些坑 首先,我这里用的是 mongodb 数据库(ps:node.js下mongo太好用了,就没有mysql) 1,用idea创建一个maven工程 由于不牵扯太多功能,直接 next 就行了, 很无奈,创建完就直接报错了 找不到 maven 相关的插件 Cannot resolve plugin org.apache.maven.plugins:maven-comp

  • QT连接MYSQL数据库的详细步骤

    第一步要加入对应的数据库模块(sql)在工程文件(.pro)介绍几个类(也是对应的头文件)  QSqlError提供SQL数据库错误信息的类 QSqlQuery提供了执行和操作SQL语句的方法 QSqlQueryDatabase 处理到数据库的连接 1.数据库的连接 //添加mysql数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //连接数据库 db.setHostName("127.0.0.1")

  • ThinkPHP 连接Oracle数据库的详细教程[全]

    一. 操作环境搭建 系统:Windows7 旗舰版 64位PHP环境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24  32位版下载地址:http://www.wampserver.com/en/ ThinkPHP:3.0正式版下载地址:http://thinkphp.cn/down.html Oracle:Orcale_11gR2  32位版下载地址:http://www.oracle.com/technetwork/cn/indexes/dow

  • linux环境下安装mysql数据库的详细教程

    1.安装数据库 1)yum -y install mysql-server(简单) yum命令自动从网上寻找mysql服务资源,下载至本地并完成安装 2)也可以自己在网上下载mysql服务,通过xftp传输至Linux系统,自己安装(一般安装在usr或opt目录下) 2.启动数据库 安装完毕,执行命令service mysqld start 3.登录数据库 mysql -u root -p回车后输入密码(mysql的默认用户是root,密码为空) 4.使用数据库 登录成功切换到mysql数据库,

  • 阿里云服务器安装Mysql数据库的详细教程

    前言 由于在学习过程中需要安装zookeeper,我的虚拟机一直有问题,就够买了阿里云服务器.安装完zookeeper后想着把数据库也安装在服务器上,释放一下电脑的压力,在安装数据库的时候遇到了很多问题,通过查看有些大佬的作品终于安装好了数据库.现在就我遇到的问题总结如下: 一.卸载Mysql 1.查看是否安装mysql 首先检查是否已经安装,如果已经安装先删除以前版本,以免安装不成功 [root@localhost ~]# php -v 或 [root@localhost ~]# rpm -q

  • QT连接Mysql数据库的实现步骤

    目录 前言 方法一.直接通过MySQL的驱动加载数据库 方法二.通过ODBC连接MySQL数据库 ODBC连接代码 总结 前言 QT连接Mysql数据库步骤相对比较麻烦,因此写了篇文章将详细过程呈现给大家,欢迎大家来评论区指导提问. 方法一.直接通过MySQL的驱动加载数据库 示例代码: (1)在.pro文件中添加下列代码: QT +=sql (2)在mainwindow.h文件中添加下列头文件: #include<QSqlDatabase> (3)在main.cpp文件中添加下列代码: QS

  • Centos7下使用yum安装mysql数据库的详细教程(增强版)

    在之前给大家分享过这篇文章:CentOS 7.0下使用yum安装mysql的方法详解,小编觉得不够详细,今天给大家通过本文给大家做个补充,感兴趣的朋友可以参考下. 1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-re

  • Java连接MYSQL数据库的详细步骤

    本文主要以MySQL为例讲下Java如何连接到数据库的,具体内容如下 当然,首先要安装有JDK(一般是JDK1.5.X).然后安装MySQL,这些都比较简单,具体过程就不说了.配置好这两个环境后,下载JDBC驱动mysql-connector-java-5.0.5.zip(这个是最新版的).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具体如下:"我的电脑"-> "

随机推荐