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

智能推荐

艾美捷Epigentek DNA样品的超声能量处理方案-程序员宅基地

文章浏览阅读15次。空化气泡的大小和相应的空化能量可以通过调整完全标度的振幅水平来操纵和数字控制。通过强调超声技术中的更高通量处理和防止样品污染,Epigentek EpiSonic超声仪可以轻松集成到现有的实验室工作流程中,并且特别适合与表观遗传学和下一代应用的兼容性。Epigentek的EpiSonic已成为一种有效的剪切设备,用于在染色质免疫沉淀技术中制备染色质样品,以及用于下一代测序平台的DNA文库制备。该装置的经济性及其多重样品的能力使其成为每个实验室拥有的经济高效的工具,而不仅仅是核心设施。

11、合宙Air模块Luat开发:通过http协议获取天气信息_合宙获取天气-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏14次。目录点击这里查看所有博文  本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。  先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获。  我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考!..._合宙获取天气

EasyMesh和802.11s对比-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏41次。1 关于meshMesh的意思是网状物,以前读书的时候,在自动化领域有传感器自组网,zigbee、蓝牙等无线方式实现各个网络节点消息通信,通过各种算法,保证整个网络中所有节点信息能经过多跳最终传递到目的地,用于数据采集。十多年过去了,在无线路由器领域又把这个mesh概念翻炒了一下,各大品牌都推出了mesh路由器,大多数是3个为一组,实现在面积较大的住宅里,增强wifi覆盖范围,智能在多热点之间切换,提升上网体验。因为节点基本上在3个以内,所以mesh的算法不必太复杂,组网形式比较简单。各厂家都自定义了组_802.11s

线程的几种状态_线程状态-程序员宅基地

文章浏览阅读5.2k次,点赞8次,收藏21次。线程的几种状态_线程状态

stack的常见用法详解_stack函数用法-程序员宅基地

文章浏览阅读4.2w次,点赞124次,收藏688次。stack翻译为栈,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include<stack>,并在头文件下面加上“ using namespacestd;"1. stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack<typename> name;2. stack容器内元素的访问..._stack函数用法

2018.11.16javascript课上随笔(DOM)-程序员宅基地

文章浏览阅读71次。<li> <a href = "“#”>-</a></li><li>子节点:文本节点(回车),元素节点,文本节点。不同节点树:  节点(各种类型节点)childNodes:返回子节点的所有子节点的集合,包含任何类型、元素节点(元素类型节点):child。node.getAttribute(at...

随便推点

layui.extend的一点知识 第三方模块base 路径_layui extend-程序员宅基地

文章浏览阅读3.4k次。//config的设置是全局的layui.config({ base: '/res/js/' //假设这是你存放拓展模块的根目录}).extend({ //设定模块别名 mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名 ,mod1: 'admin/mod1' //相对于上述 base 目录的子目录}); //你也可以忽略 base 设定的根目录,直接在 extend 指定路径(主要:该功能为 layui 2.2.0 新增)layui.exten_layui extend

5G云计算:5G网络的分层思想_5g分层结构-程序员宅基地

文章浏览阅读3.2k次,点赞6次,收藏13次。分层思想分层思想分层思想-1分层思想-2分层思想-2OSI七层参考模型物理层和数据链路层物理层数据链路层网络层传输层会话层表示层应用层OSI七层模型的分层结构TCP/IP协议族的组成数据封装过程数据解封装过程PDU设备与层的对应关系各层通信分层思想分层思想-1在现实生活种,我们在喝牛奶时,未必了解他的生产过程,我们所接触的或许只是从超时购买牛奶。分层思想-2平时我们在网络时也未必知道数据的传输过程我们的所考虑的就是可以传就可以,不用管他时怎么传输的分层思想-2将复杂的流程分解为几个功能_5g分层结构

基于二值化图像转GCode的单向扫描实现-程序员宅基地

文章浏览阅读191次。在激光雕刻中,单向扫描(Unidirectional Scanning)是一种雕刻技术,其中激光头只在一个方向上移动,而不是来回移动。这种移动方式主要应用于通过激光逐行扫描图像表面的过程。具体而言,单向扫描的过程通常包括以下步骤:横向移动(X轴): 激光头沿X轴方向移动到图像的一侧。纵向移动(Y轴): 激光头沿Y轴方向开始逐行移动,刻蚀图像表面。这一过程是单向的,即在每一行上激光头只在一个方向上移动。返回横向移动: 一旦一行完成,激光头返回到图像的一侧,准备进行下一行的刻蚀。

算法随笔:强连通分量-程序员宅基地

文章浏览阅读577次。强连通:在有向图G中,如果两个点u和v是互相可达的,即从u出发可以到达v,从v出发也可以到达u,则成u和v是强连通的。强连通分量:如果一个有向图G不是强连通图,那么可以把它分成躲个子图,其中每个子图的内部是强连通的,而且这些子图已经扩展到最大,不能与子图外的任一点强连通,成这样的一个“极大连通”子图是G的一个强连通分量(SCC)。强连通分量的一些性质:(1)一个点必须有出度和入度,才会与其他点强连通。(2)把一个SCC从图中挖掉,不影响其他点的强连通性。_强连通分量

Django(2)|templates模板+静态资源目录static_django templates-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏18次。在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面,然后通过python的模板语法将数据渲染上去。1.创建一个templates目录2.配置。_django templates

linux下的GPU测试软件,Ubuntu等Linux系统显卡性能测试软件 Unigine 3D-程序员宅基地

文章浏览阅读1.7k次。Ubuntu等Linux系统显卡性能测试软件 Unigine 3DUbuntu Intel显卡驱动安装,请参考:ATI和NVIDIA显卡请在软件和更新中的附加驱动中安装。 这里推荐: 运行后,F9就可评分,已测试显卡有K2000 2GB 900+分,GT330m 1GB 340+ 分,GT620 1GB 340+ 分,四代i5核显340+ 分,还有写博客的小盒子100+ 分。relaybot@re...

推荐文章

热门文章

相关标签