原文地址:https://www.cnblogs.com/qiyebao/p/4562557.html
1. 检查Postgresql 是否已经安装
Linux-软件包管理-rpm命令管理-查询
若已经安装,则使用rpm -e 命令卸载。
rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64 卸载 rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64 卸载
可以使用rpm -qa | grep postgres再次查看是否还有Postgres安装文件,没有卸载完成。
2.使用yum库设置安装postgresql94版本,最好先创建用户组和用户:
(1)新增postgres用户组:
groupadd postgres
(2)新增postgres用户并且设置这个用户属于上面创建的postgres用户组:
useradd -g postgres postgres
(3)修改postgres用户密码:passwdpostgres(这里设置密码为postgres)
yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm 使用yum库
3.安装postgresql94
yumsearchpostgresql//也可以先找一下,server版会有多个,决定选择装哪个
yum -y install postgresql94-server postgresql94-contrib //安装postgresql94
注意:如果出现错误,首先停止服务查看服务名称chkconfig --list找到postgresql的服务名,注意服务名可能会带有版本号,service 服务名 stop,然后使用rpm -e卸载命令,然后在执行上面的安装就可以了
安装成功
可以使用rpm -qal|grep postgres这个命令查看安装文件的位置,注意默认的postgresql配置文件的位置和名称(带有版本号)
查看/etc/rc.d/init.d/postgresql-9.4文件中的PGDATA信息,并显示行号。
上图说明默认数据库文件的安装位置是在:/var/lib/pgsql/9.4/data,如果需要改变数据库文件的存放位置可以修改这里,下面会介绍如何修改默认数据库文件的存放位置。先看看这个目录里面有没有数据库的文件:
上图说明postgresql安装完成之后,默认数据库文件存放所使用的目录是空的。
下面的内容比较重要,介绍postgresql数据库如何安装:
一、如何更改默认数据库安装位置,安装postgresql数据库:
1、删除postgres用户和他的文件信息(如果之前安装过)
userdel -r postgres
groupdel postgres
passwd postgres --修改postgres用户密码
默认刚建立的目录/mnt/pgsql和/mnt/pgsql/data的所有者和所有组都是root,需要修改为postgres用户和用户组。
chown -R postgres:postgres /mnt/pgsql ll /mnt chown -R postgres:postgres /mnt/pgsql/data ll /mnt/pgsql
修改postgresql数据库的配置文件(/etc/rc.d/init.d/postgresql-9.4)中的PGDATA和PGLOG改成我们自己创建的目录:/mnt/pgsql:
find / -name initdb 查找initdb 的安装位置
注意:出现上面的错误说明Postgresql不能以root身份初始化,要以postgres用户的身份运行,所以上面要创建linux用户postgres和组postgres。
su - postgres 切换用户
/usr/pgsql-9.4/bin/initdb -E UNICODE -D /mnt/pgsql/data --初始化数据库
cd /mnt/pgsql/data 切换目录
ll 查询初始化数据库成功之后的目录内容
编辑postgresql.conf文件,修改数据库默认接收的监听地址与端口参数:
cat postgresql.conf | grep -n listen_addresses 查找listen_addresses在postgresql.conf文件中的位置并显示行号
vi postgresql.conf 编辑postgresql.conf文件
查询listen_addresses的值:
修改前listen_addresses的值:
去掉59行的注释,将listen_addresses='localhost' 改成 listen_addresses='*',下图是修改后listen_addresses的值:
接下来继续修改pg_hba.conf文件,告诉数据库服务器它将允许什么样的客户端连接到自己:
在86行下面增加一行,表示允许任何一个客户端使用正确的用户名和密码访问自己:
host all all 0.0.0.0/0 trust
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust或peer # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0 password # IPv6 local connections: host all all ::1/128 password # Allow replication connections from localhost,by a user with the # replication privilege. #local replication postgres peer #host replication postgres 32 ident #host replication postgres ::128 ident
备注:设置trust,本地可以使用psql -U postgres直接登录服务器;设置peer,本地可以使用psql -h 127.0.0.1 -d postgres -U postgres直接登录服务器;
exit --返回root用户
chkconfig --list 查看所有服务并找到postgre的服务名称