PostgreSQL安装详细步骤(linux)
官方安装文档:http://www.postgresql.org/download/linux/redhat/
1. 检查PostgreSQL 是否已经安装
Linux-软件包管理-rpm命令管理-查询
rpm -qa | grep postgres 检查PostgreSQL 是否已经安装
rpm -qal | grep postgres 检查PostgreSQL 安装位置

若已经安装,则使用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用户密码:passwd postgres(这里设置密码为postgres)
passwd postgres --修改postgres用户密码
yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm 使用yum库

3.安装postgresql94
yum search postgresql //也可以先找一下,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信息,并显示行号。
cat /etc/rc.d/init.d/postgresql-9.4 | grep -n PGDATA -n显示行号

上图说明默认数据库文件的安装位置是在:/var/lib/pgsql/9.4/data,如果需要改变数据库文件的存放位置可以修改这里,下面会介绍如何修改默认数据库文件的存放位置。先看看这个目录里面有没有数据库的文件:
ls -la /var/lib/pgsql/9.4/data 查看这个目录里面的内容

上图说明postgresql安装完成之后,默认数据库文件存放所使用的目录是空的。
下面的内容比较重要,介绍postgresql数据库如何安装:
一、如何更改默认数据库安装位置,安装postgresql数据库:
1、删除postgres用户和他的文件信息(如果之前安装过)
userdel -r postgres
2、删除postgres用户组(如果之前安装过)
groupdel postgres
(1)新增postgres用户组:
groupadd postgres
(2)新增postgres用户并且设置这个用户属于上面创建的postgres用户组:
useradd -g postgres postgres
(3)修改postgres用户密码:passwd postgres(这里设置密码为postgres)
passwd postgres --修改postgres用户密码

创建数据库文件存放的目录:/mnt/pgsql/data
mkdir -p /mnt/pgsql/data 递归方式创建pgsql/data目录

默认刚建立的目录/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
查看是否已经更改为postgres用户和用户组了。


接下来就是要修改默认数据库文件存放路径了:
修改postgresql数据库的配置文件(/etc/rc.d/init.d/postgresql-9.4)中的PGDATA和PGLOG改成我们自己创建的目录:/mnt/pgsql:
PGDATA=/mnt/pgsql/data
PGLOG=/mnt/pgsql/pgstartup.log

保存之后,继续查询initdb文件的存放位置:
find / -name initdb 查找initdb 的安装位置

指定数据库存放位置和编码方式,初始化数据库:
/usr/pgsql-9.4/bin/initdb -E UNICODE -D /mnt/pgsql/data

注意: 出现上面的错误说明Postgresql不能以root身份初始化,要以postgres用户的身份运行,所以上面要创建linux用户postgres和组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文件,告诉数据库服务器它将允许什么样的客户端连接到自己:
vi pg_hba.conf --修改postgresql服务连接文件
修改前的源文件:

在86行下面增加一行,表示允许任何一个客户端使用正确的用户名和密码访问自己:
host all all 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/ trust
host all all 0.0.0.0/ password
# IPv6 local connections:
host all all ::/ password
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/ ident
#host replication postgres ::/ ident
备注:设置 trust,本地可以使用psql -U postgres直接登录服务器;设置 peer,本地可以使用psql -h 127.0.0.1 -d postgres -U postgres直接登录服务器;
exit --返回root用户

chkconfig --list 查看所有服务并找到postgre的服务名称

默认postgresql-9.4不是自启动的,我们需要设置postgresql-9.4服务为自启动服务:
chkconfig postgresql-9.4 on 设置服务自启动
chkconfig --list

service postgresql-9.4 status 查看服务状态
service postgresql-9.4 start 启动postgresql-.4服务

有三种方式可以查看postgresql运行是否运行
ps -ef | grep postgres 查postgres的进程信息
netstat -tpnl | grep 5432 查postgres的端口号5432是否已经打开
service postgresql-9.4 status 查看服务状态

开始连接postgresql数据库:
psql -U postgres //连接pgsql server
psql -h 127.0.0.1 -d postgres -U postgres //连接pgsql server

看到上图表示连接数据库成功了。
修改配置文件pg_hba.conf之后,登录数据库重新刷新更新后的配置命令:
select pg_reload_conf();

show data_directory;

为数据库默认的登陆名postgres(等同于SQLServer里面的sa)设置登陆数据库的密码:
ALTER USER postgres WITH PASSWORD ''; //添加密码
select * from pg_shadow;
\q回车 退出登录

设置防火墙
iptables -I INPUT -p tcp --dport -j ACCEPT
iptables -I INPUT -p tcp --dport -j ACCEPT
service iptables save
service iptables restart
cat /etc/sysconfig/iptables

二、采用默认的方式安装postgresql数据库文件:
直接执行下面的命令,都不需要创建linux用户:
service postgresql-9.4 initdb

如果启动过程中报错了,例如:Data directory is not empty![失败],估计是卸载出了问题,删除/var/lib/pgsql目录下面所有文件,使用rpm -e 命令卸载重新安装.
cd /var/lib/pgsql/data
cd /var/lib/pgsql
cd /var/lib
rm -rf /var/lib/pgsql
ll /var/lib

rpm -e postgresql94-contrib-9.4.-1PGDG.rhel6.x86_64 postgresql94-server-9.4.-1PGDG.rhel6.x86_64 postgresql94-9.4.-1PGDG.rhel6.x86_64 postgresql94-libs-9.4.-1PGDG.rhel6.x86_64 卸载
yum -y install postgresql94-server postgresql94-contrib 安装
service postgresql-9.4 initdb 初始化数据库

设置开机启动postgresql
chkconfig postgresql-9.4 on

查看postgresql运行是否运行
ps -ef | grep postgres 查postgres的进程信息
netstat -tpnl |grep 查postgres的端口号5432是否已经打开
service postgresql-9.4 status 查看服务状态

用postgres用户登录,并改密码
su postgres //切换用户
如果出现下面的错误,需要重新运行postgresql的服务,若想psql能直接登陆,再重启一下DB,socket文件会随着服务器的启动而生成。

ps -ef | grep postgre 查postgre进程

kill -
service postgresql-9.4 status
service postgresql-9.4 stop
service postgresql-9.4 start

su postgres //切换用户
psql -U postgres //连接pgsql server

ALTER USER postgres WITH PASSWORD ''; //添加密码
select * from pg_shadow;

\q 退出
如果出现下面这个错误

需要继续创建文件
touch /home/postgres/.psql_history 创建这个文件
chmod -R g+w /home/postgres 提升postgres这个目录的权限
chmod a+w /home/postgres/.psql_history 提升.psql_history这个文件的权限

修改/var/lib/pgsql/9.4/data/postgresql.conf(这个文件是默认的安装位置)
vi /var/lib/pgsql/9.4/data/postgresql.conf 修改postgresql的配置文件

去掉59行的注释,将listen_addresses = 'localhost' 改成 listen_addresses = '*'

修改/var/lib/pgsql/9.4/data/pg_hba.conf(这个文件是默认的安装位置)
vi /var/lib/pgsql/9.4/data/pg_hba.conf 修改postgresql服务连接文件

第80行:peer改称md5,本地就可以连接自己了。
在82行下面增加一行
host all all 192.168.6.0/ md5 允许192.168.0.0网段连接
host all all 0.0.0.0/0 md5 允许所有IP连接

关闭防火墙
service iptables stop
重启postgresql的服务
service postgresql-9.4 restart

三、使用客户端工具就可以连接成功了!
Navicat for PostgreSQL

pgAdmin III

转自:http://www.postgresql.org/download/linux/redhat/
http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html
http://blog.51yip.com/pgsql/1520.html
PostgreSQL安装详细步骤(linux)的更多相关文章
- PostgreSQL安装详细步骤(windows)
原文地址:http://blog.chinaunix.net/uid-354915-id-3498734.html PostgreSQL安装:一.windows下安装过程安装介质:postgresql ...
- PostgreSQL安装详细步骤windows
PostgreSQL安装:一.windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1.开始安装: 2.选择程序安装目录 ...
- PostgreSQL安装详细步骤(windows)[转]
PostgreSQL安装: 一.windows下安装过程 安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下: 1.开始安装: 2.选择程序安 ...
- 2.PostgreSQL安装详细步骤(windows)【转】
感谢 Junn9527 PostgreSQL安装:一.windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1.开始安装 ...
- PostgreSQL在win7上安装详细步骤
原文:PostgreSQL在win7上安装详细步骤 PostgreSQL安装: 一.windows下安装过程 安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- linux下mysql-5.5.15安装详细步骤
linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...
- MySql Server 5.7的下载及安装详细步骤
1.下载安装包 1)找到官网下载地址(https://dev.mysql.com),选择downloads,找到windows
- elasticsearch kibana + 分词器安装详细步骤
elasticsearch kibana + 分词器安装详细步骤 一.准备环境 系统:Centos7 JDK安装包:jdk-8u191-linux-x64.tar.gz ES安装包:elasticse ...
随机推荐
- HorizontalScrollView的使用演示样例
MainActivity例如以下: package cc.cv; import android.os.Bundle; import android.view.LayoutInflater; impor ...
- 数学图形之将曲线(curve)转化成曲面管
在我关于数学图形的博客中,一开始讲曲线的生成算法.然后在最近的章节中介绍了圆环,还介绍了螺旋管以及海螺的生成算法.一类是曲线,一类是环面,为什么不将曲线变成环的图形,毕竟曲线看上去太单薄了,这一节我将 ...
- leetcode414-第三大的数
给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...
- CREATE DATABASE failed
由于环境需要, 故修改SQL Server 2012的默认的数据库的数据文件和日志文件的位置. 如下: 创建数据库, 遭遇报错. 错误信息: A file activation error occur ...
- Template Method 模板方法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- CSS结构和层叠
每个合法的文档都会生成一个文档树,从而能根据元素的祖先,属性,兄弟元素等创建选择器来选择元素.有了这个结构树,选择器才能起作用,这也是CSS继承的核心.继承是从一个元素向其后代元素传递属性值所采用的机 ...
- 【Qt】仿QQ表情选择控件
表情选择控件在聊天应用中常常要用到,做起来尽管不复杂可是非常繁琐.特别是有些图标须要按顺序排列.每次重做必定是非常费时.所以我将聊天表情选择控件封装成一个独立的类QFaceSelectWid ...
- IOS把图片做成圆形效果
利用CAShapeLayer能够制作出随意的几何图形,把它作为UIImageView的遮罩,达到把图片做成圆形效果. imgView = [[UIImageView alloc]initWithFra ...
- Android -- Camera聚焦流程
Camera.java autoFocus()聚焦回调函数 @Override public void autoFocus() { //记录当前聚焦开始时间 mFocusStartTime = Sys ...
- 网络结构设计——负载均衡之LVS学习笔记(四)
LVS按个人理解的说就是将一台Linux服务器当作路由器等功能的技术.LVS---Linux虚拟服务器. LVS实现了三种IP负载均衡技术VS/NAT.VS/TUN.VS/DR. 今天简单分享一下我在 ...