濮阳杆衣贸易有限公司

主頁 > 知識庫 > 通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程

通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程

熱門標(biāo)簽:江西南昌百應(yīng)電話機器人 隨州營銷電話機器人怎么樣 機器人電話機創(chuàng)意繪畫 400電話申請怎么看 天音通信電話機器人 杭州400電話如何申請的 hbuilder地圖標(biāo)注 400電話從哪里申請濱州 高德地圖標(biāo)注商家在哪

1 安裝軟件

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

 2 準(zhǔn)備連接環(huán)境

在openGauss所在的root環(huán)境下執(zhí)行下列步驟

2.1 修改數(shù)據(jù)庫的pg_hba.conf文件

在GS_HOME中查找pg_hba.conf文件,本實驗中數(shù)據(jù)庫GS_HOME設(shè)置的為/gaussdb/data/db1,實際操作中GS_HOME地址可以查看安裝時的配置文件: PARAM name=“dataNode1” value="/gaussdb/data/db1" />。

cd /gaussdb/data/db1
vi pg_hba.conf

輸入“:90”找到對應(yīng)位置,然后輸入“i”切換到INSERT模式,將“host all all 192.168.0.132/32 trust”修改為“host all all 192.168.0.132/32 sha256”。

將以下內(nèi)容添加進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/

返回結(jié)果為:

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

注:如果之前沒有啟動過數(shù)據(jù)庫,返回結(jié)果如下,繼續(xù)操作即可:

[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用戶登陸數(shù)據(jù)庫,給dbuser用戶授權(quán),并退出數(shù)據(jù)庫

gsql -d postgres -p 26000 -r

postgres=# alter role dbuser sysadmin;
ALTER ROLE

postgres=# \q

2.3 修改數(shù)據(jù)庫監(jiān)聽地址

在GS_HOME中,本實驗中數(shù)據(jù)庫GS_HOME設(shè)置的為/gaussdb/data/db1。

cd /gaussdb/data/db1
vi postgresql.conf

輸入“:60”找到對應(yīng)位置,然后輸入“i”切換到INSERT模式,將listen_addresses的值修改成為*,修改后按下“Esc”鍵,退出INSERT模式,輸入“:wq”后回車保存。

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

修改完成后重啟數(shù)據(jù)庫生效(-D后面的數(shù)據(jù)庫默認(rèn)路徑,需要根據(jù)實際情況進行修改)。

gs_ctl restart -D /gaussdb/data/db1/

3 Windows下配置ODBC數(shù)據(jù)源

Windows操作系統(tǒng)自帶ODBC數(shù)據(jù)源管理器,無需用戶手動安裝管理器便可直接進行配置。

3.1下載客戶端GaussDB(for openGauss)驅(qū)動程序并進行安裝

下載地址:GaussDB驅(qū)動程序
在本地(例如D:/download)下載ZIP文件后進行解壓縮,解壓縮后文件如下。

由于本實驗openGauss安裝在ECS(openEuler ARM)上,所以進入Euler2.8_arm_64文件夾,顯示如下:

解壓縮GaussDB-Kernel-V500R001C10-Windows-Odbc.tar.gz文件,顯示如下:

點擊psqlodbc_x86.msi進行安裝:

默認(rèn)設(shè)置,直到安裝完畢。

3.2 打開驅(qū)動管理器

在配置數(shù)據(jù)源時,請使用對應(yīng)的驅(qū)動管理器(假設(shè)操作系統(tǒng)安裝盤符為C盤,如果是其他盤符,請對路徑做相應(yīng)修改):
64位操作系統(tǒng)上進行64位程序開發(fā),安裝64位驅(qū)動程序后,使用64位的驅(qū)動管理器:C:\Windows\System32\odbcad32.exe 或者直接使用“控制面板 > 管理工具 > ODBC 數(shù)據(jù)源(64 位)。

3.3 配置數(shù)據(jù)源

在打開的驅(qū)動管理器上,選擇“用戶DSN > 添加 > PostgreSQL Unicode(x64)”,然后進行配置:


Data Source:openGauss (數(shù)據(jù)源名稱,可以自定義)。
Database:postgres (需要連接的Datebase名稱)。
Server:openGauss數(shù)據(jù)庫服務(wù)器的公網(wǎng)IP,請根據(jù)實際情況填寫。
Pot:26000 (端口號)。
User Name:dbuser (連接數(shù)據(jù)庫的用戶名,不能使用omm用戶,需要在數(shù)據(jù)庫中創(chuàng)建)
Password:dbuser用戶的密碼,請根據(jù)實際情況填寫。

3.4 驗證并保存設(shè)置

點擊Test,顯示 Connection successful 表示設(shè)置成功:

點擊保存:



配置成功!

3 Qt安裝

下載好 qt-opensource-windows-x86-5.14.2.exe后,無腦next就行。但有一點需要注意。打勾的必須選上!打勾的必須選上!打勾的必須選上!

4 創(chuàng)建一個Qt工程

不會創(chuàng)建的童鞋可以參考qt創(chuàng)建工程教程。
注意!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();
}

顯示結(jié)果如下,就說明連接成功。否則,會彈出報錯提示。

總結(jié)

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

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

以上就是通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Qt連接OpenGauss數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • docker配置openGauss數(shù)據(jù)庫的方法詳解
  • QT連接Oracle數(shù)據(jù)庫并實現(xiàn)登錄驗證的操作步驟
  • PyQt中使用QtSql連接MySql數(shù)據(jù)庫的方法
  • ubuntu linux下使用Qt連接MySQL數(shù)據(jù)庫的方法

標(biāo)簽:保定 沈陽 葫蘆島 招商 鶴崗 常德 石嘴山 昆明

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程》,本文關(guān)鍵詞  通過,連接,OpenGauss,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    小金县| 新泰市| 剑河县| 怀安县| 库尔勒市| 顺义区| 南丹县| 隆子县| 章丘市| 巴林左旗| 乌拉特中旗| 磴口县| 大新县| 阜新市| 莱州市| 清河县| 亳州市| 淳化县| 岐山县| 尼勒克县| 隆尧县| 天台县| 诸城市| 罗田县| 石河子市| 金昌市| 潼南县| 黑水县| 明光市| 北票市| 纳雍县| 潞西市| 吉林市| 宁陕县| 醴陵市| 金寨县| 盈江县| 台中县| 屏边| 清水县| 上栗县|