【PostgreSQL】CentOS7.x上 PostgreSQL 9.5的安装配置

解决2008 server r2 安装 PostgreSQL 9.5.4报错问题 报错信息:  Problem running post-install step. Installation may not complete correctly. Failed to start the database server   解决步骤:   1、在windows2008server中创建一个用户,比如叫:openpgsvc,密码(假设123)设定后要记得,后面要用 阅读详情

一、PostgreSQL简介

 

PostgreSQL是自由的对象-关系型数据库服务器(数据库管理系统),在灵活的BSD许可证下发行。它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统(比如Oracle、Sybase、IBM的DB2和Microsoft SQL Server)之外,为用户提供了又一种选择。

PostgreSQL不寻常的名字导致一些读者停下来尝试拼读它,特别是那些把SQL拼读为"sequel"的人。PostgreSQL开发者把它拼读为"post-gress-Q-L",它也经常被简略念为"postgres"。

PostgreSQL维基百科:https://zh.wikipedia.org/wiki/PostgreSQL

 

二、实验环境

操作系统: CentOS7.5 Minimal 

IP: 192.168.1.106

 

三、安装PostgreSQL

 

添加PostgreSQL9.5官方yum源

# yum -y  install  https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

# ll /etc/yum.repos.d/

 

 

安装PostgreSQL9.5服务端和客户端

#  yum  -y install   postgresql95    postgresql95-server  

# yum info  postgresql95    postgresql95-server  

# rpm  -ql   postgresql95  

# rpm  -ql  postgresql95-server  

 

# cat /etc/passwd

 

初始化数据库,启动数据库

#   /usr/pgsql-9.5/bin/postgresql95-setup initdb  

#   cat /var/lib/pgsql/9.5/initdb.log

 

 

#  systemctl start  postgresql-9.5.service

# systemctl enable postgresql-9.5.service

# systemctl status  postgresql-9.5.service

 

默认的数据存方目录是/var/lib/pgsql/9.5/data/

# ll   /var/lib/pgsql/9.5/data/  

可以看出数据里目录的属主属组为postgres,默认目录权限为700,文件权限为600 

 

如果你想自定义数据库目录,在输出化数据前更改数据存放目录然后初始化数据库,启动数据库:

#  cat    /usr/lib/systemd/system/postgresql-9.5.service

 

 

设置数据库目录,假设为/opt/data/postgres

# vim   /usr/lib/systemd/system/postgresql-9.5.service

#####################################

Environment=PGDATA=/opt/data/postgres

######################################

# chown -R  postgres:postgres  /opt/data/postgres

# chmod 700  /opt/data/postgres

 

#  /usr/pgsql-9.5/bin/postgresql95-setup initdb  

#  systemctl start  postgresql-9.5.service

 

四、设置监听IP,开启远程连接

 

#  vim  /var/lib/pgsql/9.6/data/postgresql.conf

#######################################

listen_addresses = '192.168.1.106'

########################################

注:如果是设置 listen_addresses = '*'  表示监听 0.0.0.0.0

 

# vim  /var/lib/pgsql/9.5/data/pg_hba.conf

#####################################

host     all         all       127.0.0.1/32       trust

host    all           all      192.168.1.0/24    trust

######################################

注:设置你允许的客户端网段,你可以设置为某个网段如 192.168.1.0/24,具体某个IP如 192.168.1.106 或者任何客户端 0.0.0.0/0

 

 

五、数据库的命令行操作

Postgres运行用户默认是postgres,shell为 /bin/bash 

# su -  postgres

$ psql --help

psql 是 PostgreSQL 中的一个命令行交互式客户端工具,

它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果。

输入的内容允许来自一个文件,此外它还提供了一些元命令和多种类似 shell 的特性来实现书写脚本,以及对大量任务的自动化工作。

postgresql95为我们提供了连接数据库工具的客户端软件psql,postgresql96-server 是服务端软件。psql命令有两种格式,分别是:

#################################################

psql postgres://username:password@host:port/dbname 

 psql -U username -h hostname -p port -d dbname

##################################################

PostgreSQL安装及初始化完成以后,在它的配置文件里,默认只允许本机连接,而且连接到服务器的认证方式是peer和ident。

 

#  cat   /var/lib/pgsql/9.5/data/pg_hba.conf

命令格式:

本地连接非常好理解,就是从安装PostgreSQL的主机上连接,那 peer 和 ident 认证又是怎么回事呢?

PostgreSQL的官方文档上是这么说的:

map映射是在data目录下的pg_ident.conf目录里配置的,其基本定义格式如下:

#  cat  /var/lib/pgsql/9.5/data/pg_ident.conf

 

 

(1)PostgreSQL的连接命令psql有两种连接方式。不带-h参数或host参数时,是local连接,用的是peer认证方式,通过unix或者linux系统的socket进行连接。如果使用-h localhost、-h 127.0.0.1、postgres@localhost 或 postgres@127.0.0.1 这样的格式,则会使用host类型,使用TCP/IP的方式连接,使用的是ident的认证方式。

(2)需要修改配置文件设置好连接方式和认证方式,保证能够正常连接。

 

前面我们讲到,刚安装好并初始化完毕后,PostgreSQL服务器默认监听的地址是本地地址,即localhost。

我们一般都是在自己的电脑上安装客户端,然后远程连接到机房的物理服务器上。那怎么允许我们的机器可以连接到PostgreSQL服务器端呢?这里涉及到data目录下两个配置文件:

pg_hba.conf

postgresql.conf

 

 

 

默认监听localhost,这就是为什么刚安装好的PostgreSQL只能在本机上连接的原因。

我们将这个地址修改为0.0.0.0或服务器的ip地址,如下所示:

#  vim  /var/lib/pgsql/9.6/data/postgresql.conf

######################################

listen_addresses = '192.168.1.106'

######################################

# systemctl  restart  postgres-9.5.service

 

这个时候还有一个问题,那就是认证的问题。

刚才我们讲过peer和ident两种认证方式,前者只适用于本地连接,而后者则需要从ident服务器上获取用户名,都不适合我们当前的连接方式,那么还需要再修改认证方式,这里要介绍的认证方式是md5和trusted。

 

我们没讲过PostgreSQL的密码设置问题,也没有为数据库设置一个密码,那么我们只能先使用trusted的认证方式先连接到数据库上,再考虑修改数据库密码的问题。

# vim  /var/lib/pgsql/9.5/data/pg_hba.conf

#####################################

host     all         all       127.0.0.1/32         trust

host    all           all      192.168.1.0/24     trust

######################################

注:设置你允许的客户端网段

六、PostgreSQL密码设置

我们在上一节中讲了两种连接PostgreSQL的方式,分别是命令行连接和图形界面连接。这里不知道大家有没有发现一个问题,就是不管是在命令行连接或者是图形界面连接的时候,我们都没有要求大家设置密码或者输入密码?

这是因为在PostgreSQL安装完成后,我们使用/usr/pgsql-9.5/bin/postgresql96-setup initdb命令进行初始化的时候,并没有通过这个命令指定初始用户postgres的密码。当我们在服务器命令行界面使用peer认证直接登陆时,没要求我们输入密码,但是要记住,这样使用数据库是非常危险的,特别是你的数据库布置在云服务器的时候,很可能分分钟就被黑掉。在图形界面连接的时候,我们还设置了使用trust认证方式,这种方式默认允许不使用密码即可进行连接,也是非常危险的。

为了避免这些意外情况,我们介绍一下如何设置以及修改用户的密码。

 

1. 初始化时设置密码

当使用rpm包或PostgreSQL的官方yum源安装好PostgreSQL以后,不要使用/usr/pgsql-9.5/bin/postgresql95-setup initdb命令进行初始化,而是使用initdb命令。,

命令语法:

initdb [命令选项] [--pgdata | -D] 目录名

 

介绍完这个命令的用法以后,我们尝试使用这个命令来初始化数据库并给postgres用户设置一个密码。

这个命令是不能用root用户来允许的,因此先切换到postgres用户:

# su  - postgres 

$  /usr/pgsql-9.5/bin/initdb  -A md5  -U postgres -W -D  9.5/data

 

在这个命令中,我们使用的是md5加密密码,超级用户是postgres,目录是postgres用户的家目录下的9.6/data/目录,完整路径是/var/lib/psql/9.5/data/。

因为我们没有设置编码模式,从图中我们可以看到默认使用的是UTF8编码,然后执行过程中有让我们输入密码,输入密码确认以后,开始创建目录,设置各种参数。

配置完成以后还给出了启动PostgreSQL服务的命令:

$  /usr/pgsql-9.5/bin/pg_ctl   -D 9.5/data   -l  logfile   start

pg_ctl是postgresql自带的管理工具,也是只能在普通用户权限下执行的命令。

这里我们先暂时不使用这个工具。初始完成以后,我们使用systemctl启动PostgreSQL服务器:

#  su -  root 

# systemctl start postgresql-9.5.service

此时登录就可以看到已经要求你输入账号密码了,输入刚才我们初始化时设置的密码,成功登陆。

我们再看看配置文件pg_hba.conf,如下所示:

# cat    /var/lib/pgsql/9.5/data/pg_hba.conf

此时所有的默认认证方式都是我们刚才设置的md5认证方式,说明设置成功。

 

2. 初始化完成后修改密码

如果使用的是默认的初始化模式,则默认使用的是peer和ident的认证方式,配置好这两种认证方式以后,是不需要密码就可以登陆。

这时候可以先登陆到PostgreSQL服务器,然后修改密码,修改密码有两种方式:

psql命令工具修改密码

PostgreSQL的SQL语句修改密码

psql用来修改的命令工具是\password,命令行界面登录成功以后,输入这个命令,就可以直接修改当前用户的密码。

比如我们是postgres用户登陆,输入这个密码则修改postgres的密码,若是其他用户,则修改其他用户的密码,如下所示:

 

连续输入两遍密码,即成功修改,退出以后重新登陆时就需要输入新密码。

 

SQL语句用来修改密码的格式如下:

ALTER USER username PASSWORD  'passwordtext';

 

修改成功后会提示ALTER ROLE。

密码修改成功以后,将配置文件里的认证方式修改为md5认证

#  cat /var/lib/pgsql/9.5/data/pg_hba.conf

#  systemctl restart postgresql-9.5.service

# psql   -U  postgres -p 5432

重启完成后,重新登陆就需要输入密码登陆了,不管是命令行登录还是图形工具登录。

 

注意:psql并不支持像mysql命令行那样直接把密码作为参数传递进去进行非交互式登录,必须使用password file或者环境变量。

https://www.postgresql.org/docs/current/libpq-envars.html

https://www.postgresql.org/docs/current/libpq-pgpass.html

 

3.基本信息查看

(1)通过psql命令查看,命令是psql --version

#  s - postgres

$psql --version

 

(2)登录后通过SQL语句查看,命令是:SELECT version();

这个命令查看的信息更详细,可以看到服务器版本,平台型号,编译信息等。

 

(3)查看数据库信息

 

总结:

这一章里我们学习的内容是如何给用户设置密码、如何配置用户的认证方式以及如何查看用户的基本信息。

设置密码分为两种方式,分别是psql命令行形式和SQL语句形式

用户认证可以在初始化时进行配置,也可以在初始化完成后修改pg_hba.conf文件进行配置

查看表的信息也是通过两种方式,一种是psql的命令行工具,例如\l、\d、\c等,另外一种是PostgreSQL提供的函数,例如pg_relation_size()等。这里要注意的一点是,PostgreSQL提供的函数如果带参数时,要用引号将参数引起来否则会报错。

 

 

七、设置防火墙

CentOS7.x  防火墙中内置了PostgreSQL服务,配置文件位置:

#  ls  /usr/lib/firewalld/services/

 # cat /usr/lib/firewalld/services/postgresql.xml

放行相关服务端口方式1:

#  firewall-cmd --add-service=postgresql   --zone=pubilic   --permanent 

# firewall-cmd --reload 

放行相关服务端口方式2:

# firewall-cmd --add-port=5432   --zone=pubilic   --permanent

# firewall-cmd --reload 

 

 

八、参考

 

PostgreSQL FAQ

https://wiki.postgresql.org/wiki/FAQ/zh-hant

 

Documentation /PostgreSQL 9.5/The pg_hba.conf File

https://www.postgresql.org/docs/9.5/auth-pg-hba-conf.html

https://my.oschina.net/liuyuanyuangogo/blog/497239

 

CentOS 7 安装、配置、使用 PostgreSQL 9.5

https://www.jianshu.com/p/7e95fd0bc91a

 

CentOS 7 安装PostgreSQL 9.6

https://www.jianshu.com/p/d26ae43446a2

 

Centos 7 安装 PostgreSQL

https://www.cnblogs.com/stulzq/p/7766409.html

 

PostgreSQL与MySQL比较

http://bbs.chinaunix.net/thread-1688208-1-1.html

 

Linux downloads (Red Hat family)

https://www.postgresql.org/download/linux/redhat/

 

PostgreSQL RPM Building Project - Repository Packages

https://yum.postgresql.org/repopackages.php

 

PostgreSQL使用教程

https://www.jianshu.com/p/d9fecdeaa759

https://www.jianshu.com/p/f246dc45e6dc

https://www.jianshu.com/p/bd6680e4abf3

 

psql使用入门

http://valleylord.github.io/post/201408-psql-basic

 

高效使用 PostgreSQL 命令行

https://www.atjiang.com/postgresql-on-the-command-line

 

PostgreSQL psql 命令语法参数说明

https://itbilu.com/database/postgre/410auo8xZ.html

Centos7.9上Postgresql安装插件postgis Centos7.9上Postgresql安装插件postgis,附带包下载地址 阅读详情

相关推荐

在CentOS 7上安装&配置PostgreSQL 12

一、前言 1、本文主要内容 PostgreSQL 12 安装(yum) PostgreSQL 12 基础配置 PostgreSQL 12 远程访问配置 PostgreSQL 基础管理 2、本文环境信息与适用范围 环境信息 软件 版本 CentOS 7.6 Release PostgreSQL 12.x 适用范围 软件 版本 CentOS Cent...

ken的杂谈 3687

PostgreSQL 9.5 文档

© 1996-2016 PostgreSQL 全球开发组。

pger 的博客 318

centos7安装postgresql9.4

1.软件下载 cd /usr/java/postgres/ wget https://ftp.postgresql.org/pub/source/v9.4.1/postgresql-9.4.1.tar.gz   2.安装依赖包 yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-de

Dimple_Tian的博客 1580

postgresql9.5安装、主从复制、主备切换

注意:从库不要初始化,如果已经初始化,需要清空 /usr/local/postgresql/data 目录。日志文件位置:pg_log/postgresql-Sat.log。方式一:停掉主服务器,在从服务器创建trigger.txt文件。postgresql.conf 配置文件修改。recovery.conf 配置文件修改。pg_hba.conf 配置文件修改。方式二:pg_ctl promote。

weixin_38230961的博客 1011

Linux CentOS 7 PostgreSQL 9.5设置开机启动

关于Linux CentOS 7设置postgres开机启动

小灯光环 5045

ffmpeg在windows的安装、合并、切片、.m4s、.m3u8处理

自己处理视频,我用的工具是 ffmpeg,因为涉及到.m3u8格式和.m4s格式的一些操作。ffmpeg的介绍我就不多说了,这里是它的官网地址: https://ffmpeg.org/ ,这里是文档: https://ffmpeg.org/documentation.html (看的头大,没咋看下去)...

一只爱吃糖的小羊 2689

PostgreSQL 9.5 版本主备搭建

PostgreSQL 9.5 版本主备搭建

zhouwenxing666的博客 364

【NLP】文献翻译4——CH-SIMS:中文多模态情感分析数据集与细粒度的模态注释

CH-SIMS: A Chinese Multimodal Sentiment Analysis Dataset with Fine-grained Annotations of Modality摘要1. 介绍2. 相关工作2.1 多模态数据集2.2 多模态情感分析2.3 多任务学习3. CH-SIMS 数据集3.1 数据获取3.2 标注3.3 特征提取4. 多模式多任务学习框架4.1 单模态子网4.2 特征融合网络4.3 优化目标5. 实验5.1 基准5.2 实验的细节5.3 结果和讨论5.3.1 与

YoungSeng's Blog 1万+

记一次与新版sentry的斗争

引言 前段时间搭建了sentry 7.x版本,运行了有一段时间了,现在日志来量有点大 遇到了一个突出的问题:清理历史数据十分缓慢。最近在浏览sentry官方文档 发现都已经更新到8.14.1了, 而且不在支持mysql, 官方给的解释:"Due to numerous issues over the years and recent ...

weixin_34261739的博客 213

c++2048小游戏编写

最近编写了一个小游戏,叫作2048,用到了面向对象的知识。

一个学生的博客 2374

F5 GTM DNS 实战指南:智能DNS的监控与健康检查机制

本文深入解析F5 BIG-IP GTM智能DNS的核心机制,重点阐述其监控与探针两大功能如何协同工作。监控器负责深度检查服务器应用健康,确保服务可用性;探针则实时测量网络路径质量,实现基于延迟的智能流量调度。文章通过实战配置步骤,指导如何构建逻辑架构、建立iQuery通信、配置业务级健康检查及探针,从而构建高可用、高性能的全局负载均衡解决方案。

weixin_29240711的博客 472

linux centos7下通过yum安装默认的postgresql

centos7默认的安装源里面自带了postgresql,我们可以不用下载postgresql安装包或者升级安装源,只不过自带的postgresql版本比较低,这里CentOS Linux release 7.2.1511(Core)系统,添加网易163的源之后,自带的postgresql是9.2版本,这里介绍如何通过yum安装postgresql以及安装之后的设置。默认安装之后,只会监听本机12...

feinifi的博客 2万+

python全栈入门到实战【基础篇 03】入门实操:第一个Python程序 + PyCharm使用 + 输入输出全解析

本文是一篇Python入门教程,主要介绍PyCharm编辑器的安装配置和基础使用,以及Python输入输出语法的实操练习。文章分为四个部分:1)PyCharm的下载安装与基础配置;2)第一个Python程序"Hello World"的编写与运行;3)Python输入输出函数print()和input()的详细讲解;4)个人信息录入系统的实战案例。教程包含大量截图和动图演示,适合Python新手跟随操作,快速掌握编辑器使用和基础语法。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4034

记一次 Centos7.x 安装、部署 Zeppelin v0.9.0 并配置 PostgreSql 数据库

一、基本信息 官网 http://zeppelin.apache.org/ 官方下载 http://zeppelin.apache.org/download.html https://mirror.bit.edu.cn/apache/zeppelin/zeppelin-0.9.0/zeppelin-0.9.0-bin-all.tgz https://mirrors.bfsu.edu.cn/apache/zeppelin/zeppelin-0.9.0/zeppelin-0.9.0-bin-all.tgz h.

一花一世界 3137

用 AI 设计力打造专业 UI_UX:在 Trea、Qoder 等 AI IDE 中集成 ui-ux-pro-max-skill

的核心是知识库Trea 和 Qoder 虽未被--ai all原生支持,但完全可通过@folder手动集成使用后,你的 AI 生成代码将从“功能可用”跃升至“设计专业”这是零成本提升产品质感的最佳实践之一🎨好的 UI 不应是设计师的专利,而是每个开发者的默认能力。然后在 Trea 或 Qoder 中输入—— 让 AI 成为你最懂设计的结对编程伙伴。

lpfasd123的博客 7109

Apache Kafka Connect任意文件读取漏洞(CVE-2025-27817)

由于Apache Kafka客户端未对用户输入进行严格验证和限制,未经身份验证的攻击者可通过构造恶意配置读取环境变量或磁盘任意内容,或向非预期位置发送请求,提升REST API的文件系统/环境/URL访问权限。(CVE-2025-27817)

iSee857的博客 2026

在CentOS 7上安装和使用PostgreSQL的方法

关系数据库管理系统是许多网站和应用程序的关键组成部分。它们提供了一种结构化的方式来存储、组织和访问信息。PostgreSQL,或者简称为 Postgres,是一个关系数据库管理系统,提供了 SQL 查询语言的实现。它是许多小型和大型项目的热门选择,并且具有符合标准和可靠的事务以及无读锁并发等许多高级功能的优势。在本指南中,您将在 CentOS 7 服务器上安装 Postgres,并学习一些基本的使用方法。

rubys007的博客 2988

星载SAR的各项指标解读(史上最全)

一、系统指标 系统指标主要指雷达系统的通用的指标,以及和卫星整星相关的指标,主要有一下几项: 工作频段: 雷达体制: 极化方式: 设计s

9277

Centos7 yum安装postgresql 9.5

Centos7 yum安装postgresql 9.5 Centos版本:Centos7 PostgreSQL版本:PostgreSQL 9.5.x(x代表最新版本) root用户下 1.添加RPM yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 2.安装PostgreSQL 9.5 yum install -y post

cheng1210qq的博客 356

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Centos6.x安装postgresql9.3

如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 phpPgAdmin [日期:2014-12-03] 来源:Linux公社 作者:暗 [字体:大 中 小] PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括Linux、Unix(AIX、BSD、HP-UX、SGI IR

xie7090的专栏 869

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

基于Centos7.9安装PostgreSQL

依赖包安装 yum -y install gcc-c++ yum -y install readline-devel yum -y install zlib-devel 解压⽂件编译 tar -xvf postgresql-15.5.tar.bz2。下载 postgresql-15.5.tar.bz2。

Mhrya的博客 405

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PostgreSQL15.x安装教程

PostgreSQL 是一个功能强大的开源关系型数据库系统,基于 C 语言实现,采用 PostgreSQL 许可证,这是一种自由软件许可证,允许用户自由使用、修改和分发源代码,同时支持商业用途而不设强制限制。这使得 PostgreSQL 成为广受欢迎的开源数据库解决方案。PostgreSQL 支持跨版本升级,过程通常平稳。尽管国内市场 MySQL 仍占主导地位,但许多国产数据库(如华为的 GaussDB 和腾讯的 Tbase)及云服务提供商都广泛支持 PostgreSQL。此外,pgloader。

后端开发 2840
上一篇: 【Docker&MySQL】CentOS7.x上容器部署MySQL
下一篇: 【Ubuntu】Ubunut上搭建本地源,做离线安装
HunterMichaelG
博客等级 码龄9年 180粉丝 326原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值