PostgreSQL/客戶端伺服器通訊客戶端
外觀
在像 createdb、psql、pg_dump、vacuumdb 等客戶端程式能夠對資料庫執行任何操作之前,它必須與該資料庫建立連線。為此,它必須為基本邊界條件提供具體的值。
- 伺服器的 IP 地址或 DNS 名稱,即例項執行的位置。
- 該伺服器上的埠,例項正在監聽的埠。(IP 地址和埠的組合標識了例項。只要埠不同,同一個 IP 地址上就可以有多個例項。)
- 例項(或叢集內)中的資料庫名稱。
- 客戶端程式想要使用的使用者(= 角色)的名稱。
- 該使用者的密碼。
您可以透過三種不同的方式指定這些值
- 作為客戶端程式的顯式引數。
- 作為環境變數。
- 作為特殊檔案 pgpass 中的一行固定文字。
您可以在 createdb、psql、pg_dump、vacuumdb 和其他標準 PostgreSQL 命令列工具的常用簡短 (-) 或長 (--) 格式中指定引數。
$ # Example $ psql -h www.dbserver.com --port=5432 ....
引數名稱及其含義為
| 簡短形式 | 長形式 | 含義 |
|---|---|---|
| -h | --host | IP 或 DNS |
| -p | --port | 埠號(預設:5432) |
| -d | --dbname | 叢集中的資料庫 |
| -U | --username | 使用者名稱 |
如有必要,客戶端程式將提示輸入密碼。
作為引數傳遞的替代方法,您可以在 shell 中定義環境變數。
| 環境變數 | 含義 |
|---|---|
| PGHOST | IP 或 DNS |
| PGPORT | 埠號(預設:5432) |
| PGDATABASE | 叢集中的資料庫 |
| PGUSER | 使用者名稱 |
| PGPASSWORD | 該使用者的密碼(不推薦) |
| PGPASSFILE | 儲存這些值的純文字檔名稱,請參見下文(預設:.pgpass) |
您可以將這些值儲存在一個檔案中,而不是使用上面所示的引數或環境變數。在以下格式中,每個定義使用一行
hostname:port:database:username:password
UNIX 系統上的預設檔名是 ~/.pgpass,Windows 上則是 C:\Users\MyUser\AppData\Roaming\postgresql\pgpass.conf。在 UNIX 系統上,檔案保護必須禁止任何世界或組訪問:chmod 0600 ~/.pgpass。
您可以使用任何文字編輯器建立該檔案。如果您使用 pgAdmin,則無需建立該檔案。pgAdmin 會在連線成功後自動建立該檔案,並存儲實際的連線值。