postgresql從入門到菜鳥(二)服務端配置和psql連線
上一篇文章我們已經成功在rehel上安裝了postgrel資料庫。
關於window環境下的安裝,可以直接下載install檔案,進行雙擊安裝,或者通過編譯原始碼的方式安裝。
本篇文章將介紹postgresql資料的基本配置,以及客戶端與伺服器端的連線。
先看伺服器端
當我們通過 pg_start 命令啟動伺服器後,就可以在本機進行訪問了
訪問指令為
psql -h 127.0.0.1 -U postgres -p 5432
其中
-h 代表host 預設為本機。
-p 為埠號 預設為5432。
-U 代表訪問資料庫的使用者名稱。
關於-U有一點需要注意,postgres使用者為postgresql資料庫內建的超級使用者,而當我們在postgres系統使用者下使用psql命令登入而不使用-U命令的話,會預設以當前系統使用者名稱登入。在上一篇中新建的postgresql系統使用者並不是為了登入方便而是出於安全性考慮。
登入伺服器後可以通過\du,檢視資料庫使用者。內建預設postgres使用者。
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
新建角色
CREATE ROLE name LOGIN;
CREATE USER name;
以上兩條命令其實是等價的,都是新建一個角色然後賦予登入許可權。新建後即可通過-U使用該角色登入。
建立資料庫(標準sql語言,資料庫建立完畢後可以通過\c進入和切換資料庫)
create database Smoondb;
\c Smoondb;
建立表(標準sql語言,這裡不再貼出)
1 | wang | 數學 | 99 |
2 | wang | 語文 | 80 |
3 | wang | 物理 | 99 |
4 | wang | 化學 | 98 |
5 | wang | 英語 | 79 |
6 | liu | 數學 | 89 |
7 | liu | 語文 | 99 |
8 | liu | 物理 | 89 |
9 | liu | 化學 | 79 |
10 | zan | 數學 | 89 |
11 | zan | 語文 | 91 |
12 | zan | 物理 | 92 |
13 | zan | 化學 | 93 |
14 | zan | 英語 | 94 |
15 | liu | 英語 | 79 |
至此,伺服器端基本配置完畢,並且建立了測試表。若要實現客戶端與伺服器端的連線,則需要修改兩處配置檔案。
一個是$PGDATA(資料庫初始化目錄)目錄下 pg_hba.conf 檔案(該檔案主要功能為客戶端認證配置)
在此檔案中找到以下程式碼,並在後面追加第三行的程式碼XXX.XXX.XXX.XXX為客戶端的host
其中第一個all代表資料庫,第二個all代表使用者。
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all XXX.XXX.XXX.XXX trust
另一個檔案為$PGDATA(資料庫初始化目錄)目錄下 postgresql.conf(該檔案為postgresql的配置檔案)
找到以下程式碼將 listen_addresses 的值由localhost改為*
# - Connection Settings -
listen_addresses = ' *' # what IP address(es) to listen on;
修改以上兩處之後,通過 pg_ctl restart 重啟伺服器,在客戶端安裝好postgresql後即可通過控制檯連線伺服器,以下為windows客戶端測試連線rehel伺服器端