Linux安装部署数据库PostgreSQL

举报
tea_year 发表于 2025/08/30 16:12:58 2025/08/30
【摘要】 一、简介PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装,然后商业化是收费。PostgreSQL的名字咋来的。之前叫Ingres,后面为了解决一些ingres中的一些问题,作为后面的ingres,...

一、简介

PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装,然后商业化是收费。PostgreSQL的名字咋来的。之前叫Ingres,后面为了解决一些ingres中的一些问题,作为后面的ingres,就起名叫postgre。

PostgreSQL版本迭代的速度比较快,现在最新的正式的发布版本,已经到了15.RELEASE。

PGSQL的版本选择一般有两种:

如果为了稳定的运行,推荐使用12.x版本。
如果想体验新特性,推荐使用14.x版本。
PGSQL允许跨版本升级,而且没有什么大问题。

PGSQL社区特别活跃,基本是三个月一发版。意味着很多常见的BUG都可以得到及时的修复。

PGSQL其实在国外使用的比较多,国内暂时还是以MySQL为主。

但是国内很多国产数据库都是基于PGSQL做的二次封装:比如华为GaussDB还有腾讯的Tbase等等。真实很多公司原来玩的Oracle,直接平转到PGSQL。同时国内的很多云产品都支持PGSQL了。

PGSQL因为开源,有很多做数据迁移的工具,可以让你快速的从MySQL,SQLServer,Oracle直接平转到PGSQL中内部,比如pgloader这样的数据迁移工具。

二、安装环境


1、虚拟机环境
主机部署环境:

Linux 版本    处理器类型    PostgreSQL 版本
CentOS Linux release 7.9    x86_64    postgresql 14
2、下载安装包
官网地址:https://www.postgresql.org
下载地址:https://www.postgresql.org/download/


pg1.png

pg2.png



3、使用 yum 下载安装 pgsql 服务

# 下载rpm安装包
$ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 使用rpm包安装
$ yum install -y postgresql14-server

查看安装的 postgresql 版本,确认是否安装成功

$ rpm -qa | grep postgresql
postgresql14-libs-14.10-1PGDG.rhel7.x86_64
postgresql14-14.10-1PGDG.rhel7.x86_64
postgresql14-server-14.10-1PGDG.rhel7.x86_64

修改默认数据目录,并初始化 pgsql 数据库

# 修改默认数据目录
$ mkdir -p /data/pgsql/data
$ chown -R postgres:postgres /data/pgsql
$ vim /usr/lib/systemd/system/postgresql-14.service
...
Environment=PGDATA=/data/pgsql/data/
...

# 初始化pgsql数据库
$ /usr/pgsql-14/bin/postgresql-14-setup initdb
Initializing database ... OK

# 设置pgsql服务开机自启
$ systemctl enable postgresql-14
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-14.service to /usr/lib/systemd/system/postgresql-14.service.

# 启动pgsql服务
$ systemctl start postgresql-14

查看服务的运行状态

pg3.png

三、初始化 pgsql 数据库


并启动 pgsql 数据库服务

$ su - postgres
$ /data/pgsql/bin/initdb -D /data/pgsql/data/
$ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop	
$ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start	

修改 postgres 用户的账号密码

# 登录postgres用户
$ su - postgres
# 登录pgsql数据库
-bash-4.2$ psql

# 修改postgres用户密码
postgres=# alter user postgres with password 'postgres';
# 重新加载服务器配置文件, 使配置文件生效
postgres=# select pg_reload_conf();	

修改 pgsql 配置文件,添加口令认证

$ vim /data/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER    ADDRESS         METHOD

# "local" is for Unix domain socket connections only
local   all             all                     md5
# IPv4 local connections:
host    all             all     0.0.0.0/0       md5
host    all             all     127.0.0.1/32    md5
# IPv6 local connections:
host    all             all     ::1/128         md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                     md5
host    replication     all     127.0.0.1/32    md5
host    replication     all     ::1/128         md5

修改 pgsql 配置文件,允许远程访问

$ vim /data/pgsql/data/postgresql.conf 
...
60 #listen_addresses = 'localhost'
61 listen_addresses = '*' 

重新启动 pgsql 服务,使配置文件生效

$ su - postgres
$ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop	
$ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start	


四、pgAdmin客户端

下载网址:https://www.postgresql.org/ftp/pgadmin/pgadmin4/v8.14/windows/


pg4.png

p5.png

下载pgAdmin4之后,逐步安装到如下界面


修改界面语言,如果有需要,可以先将界面语言修改为简体中文,以方便后续使用。
点击菜单【File】—【Preferences】,打开偏好设置。

pg6.png

pg7.png

在界面中输入 PostgreSQL 数据库服务器的各项连接信息。【General】–【名称】:为连接起一个方便记忆和区分的名称,比如:mypdserver

pg7.png

pg8.png

p9.png

点击保存,此时 pgAdmin4 会使用配置的信息尝试连接 PostgreSQL 数据库服务器。连接成功后,就会出现以下界面:

p10.png


补充
【OID】:在 PostgreSQL 数据库中,OID(Object
Identifier,对象标识符)是一种唯一标识数据库中的对象(通常是表中的行)的整数标识符。OID在过去用于唯一标识表中的行,但从 PostgreSQL 12 版本开始,默认情况下已不再使用OID列作为表的隐藏列。OID列不再被自动创建,因此我们在创建表时不会看到它。

如果我们在使用 pgAdmin 4 创建 PostgreSQL 数据库时看到一个选项或设置涉及OID,那是因为我们可以选择是否要在特定表中启用或禁用OID列。
在新版本的 PostgreSQL中,不再需要使用OID,而且它已不再是默认行为。大多数用户不再使用OID列,因为它会增加存储和维护的开销,而且通常没有必要。

如果我们不确定是否需要启用OID列,通常情况下可以不必担心它。在pgAdmin4中,我们可以在创建表时选择是否包括OID列,但如果不明确需要它,建议将其保持禁用。
如果您有特定的用途需要使用OID列,那么可以启用它。但要注意,需要小心处理OID列,以避免潜在的性能和管理问题。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。