2016/03/23

PostgreSQL 9.4 in CentOS Linux 7 簡易安裝教學

PostgreSQL 9.4 in CentOS Linux 7

# 安裝下載
http://www.postgresql.org/download/linux/redhat/

# 安裝 REPO 來源檔
yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm -y

# 安裝主要資料庫程式
yum install postgresql94-server postgresql94-contrib -y
/usr/pgsql-9.4/bin/postgresql94-setup initdb
systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service

# 裝好後所有的設定檔及紀錄檔都在 /var/lib/pgsql 這個目錄內
[root@c7 ~]# ls /var/lib/pgsql -la
total 8
drwx------.  3 postgres postgres   36 Mar 23 09:27 .
drwxr-xr-x. 70 root     root     4096 Mar 23 09:27 ..
drwx------.  4 postgres postgres   48 Mar 23 09:27 9.4
-rwx------.  1 postgres postgres  267 Mar 23 09:27 .bash_profile

# 確認帳號
[root@c7 ~]# id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)

# 切換使用者,並且登入系統設定
[root@c7 ~]# su - postgres
-bash-4.2$ psql template1
psql (9.4.6)
Type "help" for help.

# 建立一個使用者為 mtchang 且將密碼修改為 1234 並且賦予 superuser 的權限。
template1=# CREATE USER mtchang WITH PASSWORD '1234';
CREATE ROLE
template1=# CREATE DATABASE mtchang OWNER mtchang ENCODING 'UTF8';
CREATE DATABASE
template1=# ALTER ROLE mtchang WITH superuser;
ALTER ROLE
template1=# \q
-bash-4.2$ exit
logout

# 登入測試
[root@c7 ~]# psql -h 127.0.0.1 -W -U mtchang
Password for user mtchang:
psql: FATAL:  Ident authentication failed for user "mtchang"

# 修正允許登入, 加入底下兩行
[root@c7 ~]# tail /var/lib/pgsql/9.4/data/pg_hba.conf  -n 15
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all         all         127.0.0.1/32          md5
host    all         all         192.168.1.0/24       md5

# 原來 Postgresql 的連線只開放本機 IP 可以存取,如果需要讓外面 IP 可以存取,需要打開預設的連線設定檔案
# data/postgresql.conf 將 listen_addresses = ‘localhost’ 修改為 listen_addresses = ‘*’ 結果如下:
[root@c7 ~]# cat /var/lib/pgsql/9.4/data/postgresql.conf | grep listen_address
listen_addresses = '*'

# 重新啟動 postgresql 服務
[root@c7 ~]# systemctl restart postgresql-9.4.service 

# 登入測試
[mtchang@c7 conf]$ psql -U mtchang -h 127.0.0.1 -W
Password for user mtchang:
psql (9.4.6)
Type "help" for help.

mtchang=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  
-----------+----------+----------+-------------+-------------+-----------------------
 mtchang   | mtchang  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

mtchang=# \q

# postgresql 有很多管理工具,phppgadmin OR pgadmin3 都是很好的管理工具
#簡單介紹 pgadmin3 這個工具的使用

# postgresql 管理工具 pgadmin3 install
yum install pgadmin3


# pgadmin3設定畫面





# 連接後的畫面



# 更多資訊
psql 指令
-c 參數可以直接在命令列下 SQL 敘述句
-e 參數是將 SQL 的執行指令過程全部列出來

# postgresql 建立使用者的 SQL example
psql -h localhost -U postgres -W -e -c "CREATE USER jangmt WITH PASSWORD '密碼' ;"

# postgresql 建立資料庫的 SQL example
psql -h localhost -U postgres -W -e -c "CREATE DATABASE jangmtDB OWNER jangmt ENCODING 'UTF8';"

# postgresql 建立匯入資料庫的 SQL example
psql -h localhost -U jangmt -d jangmtdb -W -e -f sql.txt 

# postgresql pg_dump 可以將資料庫依需求匯出,以供備份或轉移系統使用。
pg_dump -f sql_dump.txt -h localhost -U jangmt -W jangmtdb

之前寫的舊版8.1安裝howto http://blog.jangmt.com/2011/04/rhelcentos-postgresql.html

PhpPgAdmin透過 web 介面來管理 postgresql 資料庫 http://phppgadmin.sourceforge.net/doku.php?id=faq_docs

沒有留言: