linux下Postgresql-9.2安裝及資料庫的建立過程
公司寫部署手冊需要,現總結一些linux下postgresql的安裝及資料庫建立的詳細步驟吧!
1.1.1 軟體安裝
1.設定使用者組和使用者級別
Postgresql不能以root身份執行,要以其他的身份執行,所以必須建立對應的使用者和組。
(1)新增postgresql使用者組:groupadd postgresql
(2)新增postgres使用者屬於postgresql使用者組:useradd -g postgresql postgres
(3)修改postgres使用者密碼:passwd postgres(這裡設定密碼為postgres)
2.安裝postgresql
(1)為 postgresql-9.2.4-1-linux-x64.run賦予可執行許可權:
(2)安裝postgresql:./postgresql-9.2.4-1-linux-x64.run,一路Enter鍵,保持預設配置即可。預設安裝路徑/opt/PostgreSQL
(3)配置環境變數:執行vi /etc/profile修改全域性環境變數檔案,在profile檔案裡面新增下面三句話,
export LD_LIBRARY_PATH=/opt/PostgreSQL/9.2/lib;$LD_LIBRARY_PATH
export PATH=/opt/PostgreSQL/9.2/bin:$PATH
export PGDATA=/opt/PostgreSQL/9.2/data
執行成功後,立即生效可用source /etc/profile。
3.初始化資料庫
(1)切換至postgres賬戶:su postgres
(2)修改系統編碼為GBK:vi/etc/sysconfig/i18n
(3) 初始化資料庫initdb -D /opt/PostgreSQL/9.2/data
(4) 啟動postgres服務: postmaster -i -D /opt/PostgreSQL/9.2/data & (後臺掛起)
pg_ctl start -l /opt/postgresql/log/pg_server.log (關閉ssh視窗則關閉服務)
(5)停止
(7)檢視埠被佔用:netstat -lnpt | grep 5432 或者 ps -ef | grep postgresql
結束程序:kill -9 pid
(8)測試主機埠是否聯通:window下用telnet,linux下用nc -v host port
1.1.2 資料庫建立及指令碼匯入
如果該伺服器對外開通了5432埠的訪問許可權,則可通過pgAdmin III客戶端執行以下操作,否則只能通過SSH客戶端執行命令來實現資料庫建立及指令碼匯入。
1. 建立資料庫:createdb lsgfss
2.資料指令碼匯入: psql -d lsgfss -U postgres -f /opt/PostgreSQL/9.2/data/lsgfss.sql
3.啟動前端訪問工具:psql lsgfss
補充:linux下postgresql資料庫中的一些命令:
template1=# \l 檢視系統中現存的資料庫
template1=# \q 退出客戶端程式psql
template1=# \c 從一個數據庫中轉到另一個數據庫中,如template1=# \c sales 從template1轉到sales
template1=# \dt 查看錶
template1=# \d 查看錶結構
template1=# \di 檢視索引
4.pgAdmin III客戶端訪問linux下該資料庫的話,還需要為該客戶端分配資料庫訪問許可權, 修改pg_hba.conf 檔案,該檔案都是放在$PG_DATA目錄下,也就是一般的...../data目錄下。
新增如下一句話,然後重啟。
host all all 10.123.0.0 255.255.0.0 trust
註釋: Linux下,postgresql.conf pg_hba.conf 都是放在$PG_DATA目錄下,也就是一般的...../data目錄下
訪問的控制是修改pg_hba.conf檔案,如果加入的是下面行:
host all all 192.168.0.0 255.255.255.0 md5
這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是加密碼的,
如果加下面一行:
host all all 192.168.0.0 255.255.255.0 password
這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是沒加密碼的,
如果加下面一行:
host all all 192.168.0.0 255.255.255.0 trust
這時,你從那個網段上訪問任何資料庫時,就不要密碼, 、
如果出現這種:
host all all 127.0.0.1/32 md5
其中32是子網掩碼的網段;md5是密碼驗證方法