使用Windows gsql客戶端連接集群
更新時間 2023-08-16 15:09:59
最近更新時間: 2023-08-16 15:09:59
分享文章
本章節主要介紹如何使用Windows gsql客戶端連接集群。
用戶在創建好數據倉庫集群,開始使用集群數據庫之前,需要使用數據庫SQL客戶端連接到數據庫。DWS 提供了與集群版本配套的Windows gsql命令行客戶端工具,您可以使用Windows gsql客戶端通過集群的公網地址或者內網地址訪問集群。
操作步驟
- 準備一個Windwos操作系統服務器,用于安裝和運行gsql客戶端。Windwos操作系統支持Windows Server 2008/Windows 7及以上。
- 下載客戶端下載Windows gsql客戶端,并將壓縮包解壓到本地文件夾中。
- 設置環境變量,32位選擇x86文件夾;64位選擇x64文件夾。
方式一:命令行設置環境變量,打開電腦cmd窗口,執行set path=;%path%,其中為上一步驟解壓Windows gsql客戶端的文件夾路徑。例如:
set path=C:\Users\xx\Desktop\dws_8.1.x_gsql_for_windows\x64;%path%
方式二:在控制面板中選擇“系統->高級系統設置->高級->環境變量”,在系統環境變量Path中增加gsql路徑。例如:
詳見下圖:設置Windows環境變量


- (可選)如果要使用SSL方式連接集群,請參考使用SSL進行安全的TCP/IP連接,在客戶端主機配置SSL認證相關的參數。
說明SSL連接方式的安全性高于非SSL方式,建議在客戶端使用SSL連接方式。
- 執行以下命令,使用gsql客戶端連接DWS 集群中的數據庫。
gsql -d <數據庫名稱>-h <集群地址> -U <數據庫用戶> -p <數據庫端口> -r
參數說明如下:
- “數據庫名稱”:輸入所要連接的數據庫名稱。首次使用客戶端連接集群時,請指定為集群的默認數據庫“gaussdb”。
- “集群地址”:請參見 獲取集群連接地址進行獲取。如果通過公網地址連接,請指定為集群“公網訪問域名”,如果通過內網地址連接,請指定為集群“內網訪問域名”。
- “數據庫用戶”:輸入集群數據庫的用戶名。首次使用客戶端連接集群時,請指定為創建集群時設置的默認管理員用戶,例如“dbadmin”。
- “數據庫端口”:輸入創建集群時設置的“數據庫端口”。
例如,執行以下命令連接DWS 集群的默認數據庫gaussdb:
gsql -d gaussdb -h 10.168.0.74 -U dbadmin -p 8000 -W password -r
顯示如下信息表示gsql工具已經連接成功:
gaussdb=>
注意事項
- Windows cmd默認的字符集是GBK,所以Windowsgsql默認的client_encoding為GBK,部分UTF-8編碼的字符無法在Windows gsql中顯示。
建議:-f執行的文件使用UTF-8編碼,并設置默認的編碼格式為UTF-8(set client_encoding=’utf-8’;)
- Windows gsql中的路徑需要使用‘/’作為分隔符,否則會報錯。因為在元命令中‘\’是作為元命令開始的標志,在一般的單引號中,‘\’起轉義作用。
gaussdb=> \i D:\test.sql
D:: Permission denied
postgres=> \i D:/test.sql
id
----
1
(1 row)
- Windows gsql使用!元命令執行系統命令時,需要使用系統命令要求的路徑分隔符,一般是‘\’。
gaussdb=> \! type D:/test.sql
命令語法不正確。
gaussdb=> \! type D:\test.sql
select 1 as id;
- Windows gsql不支持元命令\parallel。
gaussdb=> \parallel
ERROR: "\parallel" is not supported in Windows.
- Linux shell中可以使用單引號和雙引號作為字符串邊界,但在Windows必須使用雙引號作為字符串邊界。
gsql -h 192.168.233.189 -p 8109 -d postgres -U odbcuser -W odbc_234 -c "select 1 as id"
id
----
1
(1 row)
使用單引號時報錯,并忽略輸入。
gsql -h 192.168.233.189 -p 8109 -d postgres -U odbcuser -W odbc_234 -c 'select 1 as id'
gsql: warning: extra command-line argument "1" ignored
gsql: warning: extra command-line argument "as" ignored
gsql: warning: extra command-line argument "id'" ignored
ERROR: unterminated quoted string at or near "'select"
LINE 1: 'select
- Windows gsql在建立連接之后長時間未使用,連接session超時,會出現SSL報錯,需要重新登錄。報錯如下:
SSL
SYSCALL error: Software caused connection abort (0x00002745/10053), remote
datanode
- Windows下Ctrl+C退出gsql。在當前行輸入SQL語句時,若捕獲到Ctrl+C信號后,無法將狀態調整到重新輸入的狀態,會按照當前沒有輸入處理,將直接退出gsql。
在輸入as后執行Ctrl+C,輸出\q后退出gsql。
gaussdb=>
select 1gaussdb=> as \q
- Windows gsql不支持連接字符集為LATIN1的數據庫,報錯信息為:
gsql:FATAL: conversion between GBK and LATIN1 is not supported
- gsqlrc.conf文件的位置。
默認的gsqlrc路徑為%APPDATA%/postgresql/gsqlrc.conf,也可通過PSQLRC變量設置。
set PSQLRC=C:\Users\xx\Desktop\dws_8.1.x_gsql_for_windows\x64\gsqlrc.conf