前言
在針對於Centos該發行版,如果是用yum安裝默認的是低版本的如:如果是cnetos6.8的話用默認的安裝是安裝的psql8.4的版本,確實是太老了(7.2默認的是9.2,暫時只是看過這兩種的),想着換成9.x的高版本的,然後出現了不少問題,以下是自己最後的成功方式(主要是針對於centos6.x和7.x的版本,下面以9.4版本爲例):
安裝postgresql的源
sudo rpm -Uvh http://yum.postgresql.org/+自己想安裝的版本
注意自己的系統版本和要安裝的數據庫版本,在添加源的步驟中並沒有太多的區別,主要是源的地址有一定的變化。i386爲32位系統的,x86_64爲64位系統的.
開始安裝
sudo yum update
sudo yum install postgresql94-server postgresql94-contrib
可以用rpm命令來檢查一下
rpm -ap | grep postgresql
結果如下
postgresql94-libs-9.4.1-1PGDG.rhel7.x86_64
postgresql94-server-9.4.1-1PGDG.rhel7.x86_64
postgresql94-9.4.1-1PGDG.rhel7.x86_64
postgresql94-contrib-9.4.1-1PGDG.rhel7.x86_64
初始化數據庫
centos6.x
sudo service postgresql-9.4 initdb
centos7.x
sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb
在初始化數據庫時可以指定參數 –PGDATA=“/data”,該參數是用於指明數據庫的數據文件的存放路徑,默認是在/var/lib/pgsql/9.4/data路徑下。
如果在CentOS 7下執行 service postgresql-9.4 initdb 將會報如下問題
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
啓動服務並設置爲開機啓動
centos6.x
在iptables中加入以下兩條記錄
> -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
然後重啓防火牆
centos7.x
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
這樣數據庫就配置好了
psql -U postgres試一下就知道是否成功了