前言
在针对于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试一下就知道是否成功了