QtによるOpenGaussデータベースへの接続の詳細チュートリアル
1 ソフトウェアのインストール
- qt-opensource-windows-x86-5.14.2.exe (以前のバージョンでは動作しない場合があります。インストール時にMinGW64が含まれている必要があります。)
- OpenGauss
- ODBC
2 接続環境の準備
openGaussが配置されているルート環境で、以下の手順を実行します。
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"./datadir is -D "/gaussdb/data/db1"
サーバーシグナル
注:データベースが以前に起動されていない場合、以下の結果が返されますので、そのまま操作を続行してください。
<ブロッククオート
[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ファイル "/gaussdb/data/db1/postmaster.pid"が存在しません。
[2021-04-27 17:02:59.640][15354][][gs_ctl]: サーバーは起動していますか?
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 OSにはODBCデータソースマネージャーが付属しているので、マネージャーを手動でインストールすることなく、直接設定することができます。
3.1 クライアント側のGaussDB(openGauss用)ドライバをダウンロードし、インストールします。
ダウンロードはこちら
GaussDBドライバ
ZIPファイルをローカルにダウンロード(例:D:/download)して解凍すると、解凍されたファイルは次のようになります。
今回の実験ではopenGaussはECS(openEuler ARM)にインストールしているので、Euler2.8_arm_64フォルダに行くと以下のように表示されます。
GaussDB-Kernel-V500R001C10-Windows-Odbc.tar.gz ファイルを解凍すると、以下のようになります。
psqlodbc_x86.msiをクリックして、インストールします。
インストールが完了するまでの初期設定。
3.2 ドライバマネージャを開く
データソースの設定を行う際は、対応するドライバマネージャを使用してください(OSのインストールディスクをCと仮定し、他のディスクの場合は適宜パスを修正してください)。
64ビットOSで64ビットプログラムを開発する場合、64ビットドライバをインストールした後、64ビットドライバマネージャを使用してください。64ビットドライバーをインストール後、64ビットドライバーマネージャー C:\[email protected] または直接コントロールパネル> Management Tools> ODBC Data Source (64ビット)を使用してください。
3.3 データソースの設定
開いたドライバーマネージャーで、quot;ユーザーDSN > 追加 > PostgreSQL Unicode(x64)" を選択し、設定します。
データソース:openGauss(データソース名、カスタマイズ可能)。
データベース:postgres (
接続するデータベースの名前
).
Server: openGaussデータベースサーバーのパブリックIP、適宜記入してください。
Pot:26000(ポート番号)。
ユーザー名:dbuser(データベースに接続するためのユーザー名、オムユーザーは使用不可、データベースで作成する必要がある)
パスワード:dbuserユーザのパスワード、適当に記入してください。
3.4 設定の確認と保存
Testをクリックすると、Connection successfulと表示され、セットアップが成功したことを示します。
クリックすると保存されます。
コンフィギュレーション成功
3 Qtのインストール
qt-opensource-windows-x86-5.14.2.exe をダウンロードしたら、次は無心になるだけです。しかし、注意しなければならない点があります。チェックボックスが選択されている必要があります チェックボックスが選択されている必要があります! チェックボックスが選択されている必要があります!
4 Qtプロジェクトの作成
作成方法が分からない方は
qtプロジェクト作成チュートリアル
.
注意! キットは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");//the Data Source you configured in 2.3, such as openGauss
qDebug()<<"ODBC connect?"<<<db.isValid();
db.setHostName("xxxx.xxxx.xxxx");//your IP address
db.setDatabaseName(dsn);
db.setUserName("xxx"); //username
db.setPassword("xxxx");//password
db.setPort(26000); //opengauss port number is 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();
}
以下のような結果が表示されれば、接続は成功です。それ以外の場合は、エラーメッセージがポップアップ表示されます。
概要
失敗した場合、考えられる理由。
- QtのMinGWの選択が64ビットでない
- ODBCが必要なように設定されていない
以上、Qtを使ったOpenGaussデータベースへの接続の詳細なチュートリアルを紹介しました。Qtを使ったOpenGaussデータベースへの接続の詳細については、Script Houseの他の関連記事を参照してください。
関連
-
SQL修正構文文の概要
-
ツリー構造データベースのテーブルのスキーマ設計のための2つのオプション
-
DataGripでクリックハウスの時間フィールドが正しく表示されない
-
Hbaseカラムナーストレージ入門チュートリアル
-
DeepinV20 Mariadbのクイックインストールを詳しくご紹介します。
-
Navicat for Mac システムチュートリアルのインストールと使用方法
-
Dbeaverを使ったHiveへのリモート接続の詳細方法
-
navicat トランザクションの自動コミット問題について
-
タイプインジェクションとコミットインジェクションのSQLインジェクションチュートリアル
-
SQLにおけるwhereとhavingの違いについて解説します
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Navicat 15アクティベーションチュートリアル
-
データベースシステムの構造詳細説明 3レベルのスキーマ構造
-
MySQLとRedisがデータの一貫性を確保する方法について説明します。
-
ナビカット15のインストールチュートリアルを超詳しく解説(一番信頼できるのはこれ)
-
SQLyogダウンロード、インストール超詳細チュートリアル(プロテスト永久保存版)
-
データベースキャッシュの最終的な整合性に関する4つのオプション
-
Navicat Premiumを使用して、データベースのテーブル構造情報をExcelにエクスポートする方法
-
NavicatでMySqlデータベースへの接続が遅い問題
-
高額で無料のSQL開発ツール「Beekeeper Studio」解説
-
SQLインジェクションについて詳しく話すいくつかの散在する知識のポイント