1.软文推荐

2.软文推荐

3.软文推荐

PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。下面良许教程网为大家分享一下Linux系统中安装PostgreSQL 的详细步骤。

PostgreSQL 简介:

PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。

PostgreSQL的起源可以追溯到1986年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上进行了30多年的积极开发。

PostgresSQL凭借其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了良好的声誉,以始终如一地提供高性能和创新的解决方案。

PostgreSQL在所有主要操作系统开始使用PostgreSQL从未如此简单。

Linux系统安装PostgreSQL 详细步骤: 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

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文来源:www.lxlinux.net/1261.html,若引用不当,请联系修改。

相关文章 8

1

营销型网站特点形式!(营销型网站的特点) 2分钟前

营销型网站不单只是展示企业形象及产品,更多了从网站的排版布局上去做优化,利于SEO的优化,程序代码和页面的长度都是不一样的,且...

2

【8月优惠】数脉科技:香港CN2独立服务器新客立减400HKD,月付315元起 5分钟前

数脉科技是一家主要销售独立服务器的国人主机商家,目前商家发布了八月优惠,本次推出的几款套餐都是直接立减的套餐,目前商家提供...

3

华纳云:新人优惠400元,香港高防服务器(10M-50M带宽),DDOS防护800G 6分钟前

华纳云怎么样? 华纳云目前推出一系列的中国香港高防服务器,800G DDoS防护能力,支持压力测试,新客减400,年付减免2个月!,1个管理IP+...

4

【双十一】小欢互联:.洛杉矶/圣何塞VPS年付138元起,高防主机48元每月起,附洛杉矶测 7分钟前

小欢互联之前给本站投过稿,本站也分享过他家的套餐,昨天商家推送来了商家的双十一优惠活动,目前商家所有的产品都有特价优惠,商...

5

【便宜】SSDNODES:6核/24G/240G SSD/24TB/1Gbps/洛杉矶/年付$99 10分钟前

SSDNODES是一家成立时间比较长的国外主机商家了,这个商家一直以来都以提供低价的VPS来提高关注度,近期商家推出了一个洛杉矶机房的限时...

6

【MSDN】Windows Server 2022服务器版20348.169简体中文、英文版2021年8月官方镜像资源 12分钟前

微软已经在MSDN上正式发布了2021年8月的Windows Server 2012服务器版官方的ISO初始镜像,版本号为20348.169,允许订阅的开发者使用这些新功能。...

7

cyun:618年中促销节,香港CN2 GIA/美国200G高防/美国CERA服务器24.65元/月起 13分钟前

cyun怎么样? cyun蓝米数据商家618年中促销节,活动开启:为所有新老客户提供了2021年中促销活动,全系列云服务器产品新购/续费均可享受折...

8

企业商城建站步骤介绍 虚拟主机如何创建网站(电商商城建站) 16分钟前

??我们知道行业千千万,有旅游、建筑、教育、房地产、服务等等。而建网首要的就是确定方向。那么有人问企业商城建站步骤是怎样的?虚...