2023年2月18日 星期六

PostgreSQL Windows psql 指令介面安裝與 UTF-8 編碼異常排解

PSQL 安裝使用

PostgreSQL 在連線使用上除了各種 Driver 和 圖形化介面以外,
有一個很方便的工具 psql 指令,
有很多方便的 Meta Command 可以幫助我們快速查看表格、帳號、資料庫等等的清單資訊,
如果不熟悉的人可以在進入 psql 互動式介面後輸入 \? 就可以看到使用的詳細說明,
或是可以參考 PostgreSQL 的官方手冊
https://www.postgresql.org/docs/current/app-psql.html

在 Linux 環境下取得對應版本的這兩個 Rpm 及簡單的環境變數設定後即可使用,
postgresql14-14.4-1PGDG.rhel8.x86_64.rpm
postgresql14-libs-14.4-1PGDG.rhel8.x86_64.rpm

相關檔案可以從官方的 Repository 中取得。
https://download.postgresql.org/pub/repos/yum/

而在 Windows 環境下也有對應的 Clients 可以下載安裝使用,
由 PostgreSQL 其中一個原廠 EnterpriseDB 所協助提供,
可在下面連結中取得,僅需要免費帳號即可下載。
https://www.enterprisedb.com/software-downloads-postgres














下載後選擇以系統管理員執行,
依需求選擇需要安裝元件,
如果為安裝 psql 僅需安裝 Command Line Tools 即可,
也會包含像是 pg_dump 等等便利的工具。














環境變數 PATH 設置方式可以參考這篇文章。
https://www.computerhope.com/issues/ch000549.htm#windows10
完成後即可透過 psql 登入資料庫 (此處以 edb-psql 為範例,與 PG 相同)











 UTF-8 編碼異常排解

PostgreSQL 資料庫只支援 UTF-8 儲存資料,
一般 Windows 作業環境為 BIG-5 ,
在 psql 連線時,會自動設置 client_enconding = 'BIG-5' 進行編碼轉換,
可正常讀取寫入資料。

部份環境的 Windows 可能有啟用以下設定,
此設定會導致編碼有點混亂的狀況可能在顯示上和寫入資料會有異常。












在此狀況下如果需要正常讀寫會需要做一些設定的調整
透過以下方式執行即可正常讀寫:
1. 調整介面字碼為 BIG-5
chcp 950

2. 登入 psql (會跳 Warning 可忽略)
psql -h hostanme -p port -U usename 

3. 調整 Session 的 Client_Encoding
set client_encoding TO 'BIG5';