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数据库

Linux添加/删除用户和用户组

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/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.0.0.0/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        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 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-9.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 '1234'; //添加密码
select * from pg_shadow;
\q回车 退出登录

设置防火墙

iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 5432 -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.3-1PGDG.rhel6.x86_64 postgresql94-server-9.4.3-1PGDG.rhel6.x86_64 postgresql94-9.4.3-1PGDG.rhel6.x86_64 postgresql94-libs-9.4.3-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 5432   查postgres的端口号5432是否已经打开
service postgresql-9.4 status 查看服务状态

用postgres用户登录,并改密码

su postgres  //切换用户

如果出现下面的错误,需要重新运行postgresql的服务,若想psql能直接登陆,再重启一下DB,socket文件会随着服务器的启动而生成。

ps -ef | grep postgre 查postgre进程

kill -9 31308
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 '1234'; //添加密码
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/24          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

原地址:http://www.cnblogs.com/qiyebao/p/4562557.html

转载于:https://www.cnblogs.com/id-666/p/8458923.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33866037/article/details/93633453

智能推荐

POJ2485 Highways-程序员宅基地

文章浏览阅读94次。Time Limit:1000MSMemory Limit:65536KB64bit IO Format:%lld & %lluDescriptionThe island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has...

上位机图像处理和嵌入式模块部署(qmacvisual灰度匹配)_嵌入式实现模版匹配-程序员宅基地

文章浏览阅读737次,点赞19次,收藏8次。【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 模板匹配是图像中经常使用到的功能。我看过很多现场配置部署的同学,虽然他们使用的是类似于vision master、visio pro这样的专业机器视觉软件,但是大家会使用的功能也集中在模板匹配上面。来一个零件,匹配一次。如果零件的数量非常大,就变成了体力活。所以,这从另外一个方面也说明了,模板匹配本身是非常好用,但是也不要滥用。_嵌入式实现模版匹配

springboot+mysql一个小说阅读App-计算机毕业设计源码48151-程序员宅基地

文章浏览阅读68次。2.游客:指未登录用户端APP的一切角色,主要活动有浏览小说简介、浏览小说评价、导入本地TXT文件格式小说、浏览APP公告和UI个性化。3.用户:指拥有账号并且登录用户端APP的角色,拥有的主要权限包括游客的所有权限以及在线观看小说、下载小说 、上传小说、对小说作出评价。4.管理员:指拥有账号并且登录管理员端APP的角色。主要权限包括审批用户上传的小说、删除用户的小说、直接添加小说、修改已上架的小说、删除用户的小说评价、封禁用户的评价权限(禁言)、封禁用户的上传小说权限。

HarmonyOS鸿蒙学习笔记(2)路由ohos.router的使用_import router from '@ohos.router-程序员宅基地

文章浏览阅读3.8k次。@State的作用,路由传递和接收参数的使用方法_import router from '@ohos.router

魔鬼作坊代码注入器_代码依赖是魔鬼。-程序员宅基地

文章浏览阅读954次。魔鬼作坊代码注入器“Change is the only constant…” – Heraclitus (Philosopher) “变化是唯一不变的……” –赫拉克利特(哲学家) The tools, libraries, and frameworks we use to build our web applications today are drastically different f..._代码注入器

python 链式计算框架_Python 金融计算框架 Prophet-程序员宅基地

文章浏览阅读89次。前言Prophet 是一个 Python 的微框架,用于金融市场。Prophet 可以让开发人员把精力放在金融策略模型、项目组合管理和分析上。示例代码:fromdatetimeimportdatetimefromprophetimportProphetfromprophet.dataimportYahooCloseDatafromprophet.analyzeimportd..._from prophet.data import yahooclosedata

随便推点

把System.out.print的输出加到logback的日志文件中_logback system.out输出到文件-程序员宅基地

文章浏览阅读1.9k次。经常会碰到一些旧系统,使用System.out直接在控制台输出日志,然后再用命令行重定向的方法把日志写到文件中,这个方法主要问题是日志会越来越大,要经常手动删除。今天我们就把System.out的输出加到logback的日志文件中,由logback来管理这些日志。直接上代码,一都在代码和注释中了。和控制台输出的一模一样。_logback system.out输出到文件

从头学pytorch(四) softmax回归实现_torch 改softmax-程序员宅基地

文章浏览阅读1.3k次。FashionMNIST数据集共70000个样本,60000个train,10000个test.共计10种类别. 通过如下方式下载. mnist_train = torchvision.datasets.FashionMNIST(root='/home/sc/disk/keepgoing/learn_pytorch/Datasets/FashionMNIST', ..._torch 改softmax

网络安全(黑客)—2024自学手册-程序员宅基地

文章浏览阅读1.5k次,点赞22次,收藏16次。我在这里可以很肯定地告诉你:"网络安全有很好的发展前景,前沿网络安全技术即将崛起,或者说已经崛起"。

家用电信光猫更换教程+设置路由模式_znm160g管理员密码-程序员宅基地

文章浏览阅读3.4w次,点赞7次,收藏50次。家用电信光猫更换光猫教程电脑版:手机端设置:连接光猫的WIFI即可用网线把电脑和光猫连接起来浏览器输入192.168.1.1进入光猫管理界面,出现登录界面,输入账号useradmin,密码在光猫后面可以找的到;找到逻辑ID(LOID),复制出来,(注册新的光猫必备)把电脑和光重新连接新的光猫,在浏览器输入192.168.1.1进入管理界面,点击注册,输入刚刚保存的逻辑ID,密码留空,点击确认,下发业务成功即可上网;==========================_znm160g管理员密码

linux 关闭开机 ftp,解决linux ftp匿名上传、下载开机自启问题-程序员宅基地

文章浏览阅读230次。如果在平时学习,工作中经常使用 ftp 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令;1.chkconfig 命令主要作用:用于检查,设置系统的各种服务。其中有几个重要参数,先了解 --list ,chkconfig --list :列出 chkconfig 知道的所有命令,chkconfig 服务名 on /off :开启,关闭服务(一般是开机自启或是关闭)2.检查是否设置..._linux系统如何关闭ftp自动启动功能

SWUSTOJ #133 水王争霸_swust oj 133-程序员宅基地

文章浏览阅读5k次,点赞3次,收藏4次。众所周知,IOIForum有很多水王,他们的发贴数是如此之多,以至于必须要用高精度数才能保存。 为了迎接国庆,IOIForum决定举行一次水王争霸赛,比赛的规则是将这些水王截止到2003年9月30日23时59分59秒这一刻所发的总贴数从大到小进行排序。每个水王当然都想取得尽量靠前的名次,所以他们竭尽全力,不择手段地进行灌水。 终于,激动人心的一刻到来了,2003年10月1日0时0分0秒,你作为裁判得到了每个水王的发贴数,现在,你的任务是公正地把这些水王按照发贴数从大到小进行排序。_swust oj 133

推荐文章

热门文章

相关标签