【7月更文挑战第2天】
前言
PostgreSQL是一款功能强大、开源的关系型数据库管理系统(RDBMS),在处理大规模数据库和复杂查询方面表现出色。本文旨在帮助初学者从安装层面全面了解 PostgreSQL
在上一篇《学习实践|认识PostgreSQL》中也了解了一下PostgreSQL的发展和未来趋势,也了解了目前市面上开源版PostgreSQL,从上一篇的链接中或者在搜索引擎中输入PostgreSQL也可以到达你想要的官方地址来下载安装。下面就随着一起安装这个关系型数据库吧。
官方提供的安装包
不出所料的话,你已经比较熟悉如何访问官网。首先,访问官方网站(https://www.postgresql.org/),点击页面熟悉的 Download 来下载最新的 PostgreSQL 版本。根据你的操作系统选择合适的安装包,然后按照安装向导进行安装。
- 各个平台发行版本,下载和使用:https://www.postgresql.org/download/
- 二进制/源码版本,可以来这里下载和使用,目前最新的版本为
v17beta1
,正式版本为v16.3
:https://www.postgresql.org/ftp/source/ - 快照版本,可以来这里下载安装使用:https://www.postgresql.org/download/snapshots/
如何选择安装包
一般情况下,无论是开发环境还是生产环境,我们使用的Linux的版本居多,此次就以Linux安装为例,详细解释。
【选择服务平台】
从官网找到Linux,然后按照如下箭头点击下去,那么会有不同的内核版本选择,例如Red Hat Linux(RHL版本)\ Debian \ Ubuntu等等。本次安装也是使用RHL来做演示。
【选择安装方式】
依次点击下去会跳转到一个页面,提供多种安装方式。这里会有一些特定平台的安装方式:https://www.postgresql.org/download/linux/redhat/。针对红帽(RHL)的发行版支持如下
- Red Hat Enterprise Linux
- Rocky Linux
- AlmaLinux
- CentOS (7 and 6 only)
- Fedora
- Oracle Linux
PostgreSQL针对用户很是友好,你可以根据自己的服务器来自行选择版本、选择平台、选择架构,甚至都将操作命令给予准备好了,岂不是美哉?下面分别在Linux、MacOS、Windows安装操作,有些具体的操作明细就不再赘述。
如何使用rpm离线安装发行版
对于开发测试环境,我们都是连接互联网,可以使用YUM库来自行安装,如果是生产非联网环境,可以考虑下载RPM包后使用RPM来自行安装。离线安装,可以下滑到底部,找到这里即可下载离线包。
一般情况下,我们如果是离线安装只需要下载下面几个或这四个包之外的系统依赖包
postgresql15-15.7-1PGDG.rhel7 postgresql15-contrib-15.7-1PGDG.rhel7 postgresql15-libs-15.7-1PGDG.rhel7 postgresql15-server-15.7-1PGDG.rhel7
下载之后上传到服务器上面,然后使用RPM执行所有安装即可,当然你也可以一个一个安装包来安装,这个与MySQL也有类似之处。
rpm -ivh ./postgresql15-*PGDG.rhel7 --force --nodeps
注意⚠️:在安装执行的过程中,可能会因为系统缺少相关依赖而报错,导致安装失败,需要根据报错来一一解决,然后再执行安装即可。
如何使用Homebrew在线安装发行版
习惯于MacOS开发的就更好了,在这里直接使用homebrew来搜索安装到本机器,然后使用services启动即可。
-- 1 搜索 brew search postgre -- 2 安装(需要的版本,例如我这里安装16) brew install postgresql@16 -- 3 启动数据库 brew services start postgresql@16 -- 4 默认情况,登录帐号为机器登录帐号,数据库为postgres psql -U [机器的名称] -d postgres
如何使用exe安装包安装发行版
这个在官网下载,然后按照要求配置和下一步即可。
初始化数据库和配置信息
【初始化数据库信息】
在Linux中,使用 posgresql-step --innitdb
来初始化默认的数据库,可使用systemctl或者service命令启动数据库,至于使用哪一个命令主要是依据服务器的版本,选择好后即可。
如果不确定是否已经启动成功,那么可以使用ps命令查询下。
ps -ef | grep postgre
默认安装情况下,PostgreSQL会自动创建一个postgre用户,且没有设置密码。为了安全,此时我们需要切换到此用户,修改此用户的密码。
[root@204 ~]# su postgres bash-4.2$ psql could not change directory to "/root": Permission denied psql (15.5) Type "help" for help. postgres=# ALTER USER postgres WITH PASSWORD 'Postgres#123'; ALTER ROLE
【配置文件说明】
- postgresql.conf:是 PostgreSQL 数据库服务器的核心配置文件。它是一个文本文件,用于定制和优化数据库服务器的行为,包括但不限于网络连接设置、性能调整参数、日志记录、安全控制和资源管理等方面。通过修改这个文件,管理员可以调整数据库以满足特定的应用需求或环境条件,比如增加最大连接数、改变监听端口、配置内存使用量、设定数据存储路径、调整事务日志行为以及安全管理等。
- pg_hba.conf:全称为 "PostgreSQL Host-Based Authentication Configuration"。这个文件负责定义客户端连接到 PostgreSQL 服务器时的认证方法,即控制哪些主机上的哪些用户可以通过何种认证方式访问哪些数据库。通过精细的访问控制规则,它可以增强数据库系统的安全性。该文件用于控制PostgreSQL服务器的访问权限,具体包括:允许哪些用户连接到哪个数据库,允许哪些IP地址连接到本服务器,以及制定连接时使用的身份验证模式。
- pg_ident.conf:主要用于定义操作系统用户(OS user)和数据库用户(PostgreSQL user)之间的映射关系。这个映射功能使得在进行身份验证时,可以将操作系统的用户账户自动对应到数据库内的一个用户账户上,特别是在使用像 ident 或 peer 认证方法时非常有用。如果该文件存在,则系统会基于文件内容将当前登陆的操作系统用户映射为一个PostgreSQL数据库内部的身份来登陆。有些人会把操作系统的root用户映射为PostgreSQL的postgres超级用户账号。
【开启远程登录】
找到pg_hba.conf文件,找到IPv4 local connections连接修改配置即可。例如我这里增加172.16.102.220服务器访问的权限。
# IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 host all all 172.16.102.220 md5
找到postgresql.conf文件,放开listen_addresses
和port
的注释并把listen_addresses后的localhost改成 *。
listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5432 # (change requires restart)
修改完成保存,重新启动即可。
总结
主要还是熟悉和了解PostgreSQL是如何下载并安装,关于PostgreSQL的说明性的文档还是比较齐全,有问题可以在官方找到答案,安装的具体配置下一篇吧。安了,要休息了~
引用
为方便查阅,以下为写本篇博文所引用到的链接和地址
[引用]