2024年4月28日 星期日

不用root來安裝PostgreSQL Client工具的另類選擇

我們需要在另一台Linux主機安裝PostgreSQL Client,使其能夠連線到遠端的PostgreSQL 資料庫,該如何安裝呢?

此篇延伸至另一篇文章  如何在Oracle Linux安裝PostgreSQL DB? 有興趣的朋友請自行參考該連結。

安裝環境說明:
1) OS為Linux 8.x
2) PostgreSQL Client版本為14.11,開啟連結 https://www.postgresql.org/ftp/source/v14.11/
,找到檔案postgresql-14.11.tar.gz,點選該檔名下載。

接下來開始設定安裝PostgreSQL Client工具的步驟

Step 1.
以OS user root登入,建立OS user postgres。

useradd -g postgres postgres
groupadd postgres
passwd postgres(這邊會要求輸入兩次密碼)

Step 2.
仍以OS user root登入,建立放置來源檔的資料夾。

mkdir /home/postgres/source/
mv postgresql-14.11.tar.gz /home/postgres/source/

Step 3.
仍以OS user root登入,建立安裝PostgreSQL Client工具的資料夾。

mkdir /apps
mkdir /apps/postgresql14
#設定資料夾/apps/postgresql14的owner與group皆為postgres。
chown -R postgres:postgres /apps/postgresql14

Step 4.
以OS user postgres登入,建立data資料夾。

su - postgres
mkdir /apps/postgresql14/data
chmod 750 /apps/postgresql14/data

Step 5.
以OS user postgres登入,切換回自己home目錄下面的source資料夾。
cd
cd souce
#變更檔案權限
chmod 775 postgresql-14.11.tar.gz
#解開檔案
tar -xvzf postgresql-14.11.tar.gz

Step 6.
改以OS user root登入,安裝下面三個package,若沒有安裝,則安裝PostgreSQL Client時會有問題。

#安裝步驟可以參考另一篇文章
如何在Oracle Linux安裝PostgreSQL DB? 有興趣的朋友請自行參考該連結。
makecache
readline-devel
unixODB-devel

Step 7.
以OS user postgres登入,執行下列指令。

make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install

Step 8.
用psql命令,測試連線到遠端的PostgreSQL DB。

psql -h 172.16.1.111 -p 5432 -d dvdrental -U postgres

若您只是要安裝PostgreSQL Client tool,安裝到這個步驟就可以準備結束了,若您想了解如何安裝PostgreSQL ODBC,請繼續往下參考。

Step 9.
安裝 PostgreSQL ODBC Driver

psqlodbc-16.00.0000.tar.gz 檔案來源可至下列網址下載。
https://www.postgresql.org/ftp/odbc/versions/src/
1) 將下載檔上傳到要安裝的Server,執行chmod變動檔案權限。
chmod 775
psqlodbc-16.00.0000.tar.gz

2) 解開壓縮檔,執行命令參考如下。
tar -zxvf psqlodbc-16.00.0000.tar.gz

3) 檔案會解壓至一個資料夾psqlodbc-16.00.0000。
cd psqlodbc-16.00.0000

4) 執行下列指令安裝
./configure --prefix=/apps/postgresql14/odbc
make
make install

5) 編輯ODBC連線
切換至OS user root,然後編輯檔案 /etc/odbc.ini內容
[POSTGRES14_Conn]
<==這個名稱為您使用ODBC連線時的名稱。Driver=PostgreSQL
Database = dvdrental <==這邊改成您要連線的資料庫名稱,若要連線多個資料庫,就建立多組相同內容的設定,但記得要改連線資料庫名稱。
ServerName=postgrsqlsrv
Port=5432
Connecton Timeout = 60
Trusted_Connection=Yes

6) 一樣仍為
OS user root,編輯檔案odbcinst.ini。
[PostgreSQL]  <==這個名稱表示為PostgreSQL Driver
Description     = ODBC for PostgreSQL
Driver          = PostgreSQL
Driver64        = /apps/postgresql14/odbc/lib/psqlodbcw.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1

上述的Driver64為實際安裝PostgreSQL Client的檔案位置,請調整為您實際安裝目錄的位置。

7) 若上面步驟 5)設定的
ServerName 不是IP而是Hostname,建議編修hosts加入連線遠端PostgreSQL主機的IP與Hostname內容,記得IP寫在Hostname前面,編修後繼的儲存內容。
編輯/etc/hosts
172.16.1.111    postgrsqlsrv   
postgrsqlsrv.localdomain

8) ODBC連線測試
(可以用OS user root or postgres測試)
isql POSTGRES14_Conn postgres postgres

[root@pgclient ~]#  isql TARGET_POSTGRES14 postgres postgres
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
[root@pgclient~]# su - postgres
[postgres@pgclient~]$ isql TARGET_POSTGRES14 postgres postgres
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

以上,希望對有興趣安裝PostgreSQL Client工具玩玩的朋友們有幫助。


沒有留言:

張貼留言

不用root來安裝PostgreSQL Client工具的另類選擇

我們需要在另一台Linux主機安裝PostgreSQL Client,使其能夠連線到遠端的PostgreSQL 資料庫,該如何安裝呢? 此篇延伸至另一篇文章  如何在Oracle Linux安裝PostgreSQL DB? 有興趣的朋友請自行參考該連結。 安裝環境說明: 1) ...