【Linux】之搭建 PostgreSQL 环境

前言


在 Linux 系统下安装 PostgreSQL,可以选择快捷方便的 Docker 安装,但正常的服务器都是直接原生安装的,所以,这里我将讲解如何正常安装 PostgreSQL 以及安装之后的一些配置。如果想了解 Docker 安装的话,可以查看我的另一篇博客:【Docker】之安装 PgSQL


一、PostgreSQL 安装流程


1、进入官网获取安装包下载脚本

进入 PostgreSQL 官网下载页面:https://www.postgresql.org/download/,默认会进入安装包(Packages)下载页面,选择自己的系统和发行版本。这里,由于我使用的系统是 Centos7,所以选择 Linux 下的 Red Hat 选项:

在这里插入图片描述
点击对应的发行版本,会跳转到版本选择页面:

在这里插入图片描述

  • Select version:选择 PostgreSQL 的安装版本,这里我选择安装 15 的版本;
  • Select platform:选择安装平台,这里我根据我的系统选择对应的 CentOS 平台;
  • Select architecture:选择处理器指令集架构,这里我选择的是 x86_64

当你选好版本、平台和处理器架构之后,下面的第 4 栏会出现相应的安装脚本。下面我们就根据官方给的脚本进行逐步安装。

2、安装配置步骤

2-1、安装 RPM 仓库

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2-2、安装 PostgreSQL 服务

sudo yum install -y postgresql15-server

如果安装过程中报错,缺少 libzstd.so.1 包依赖:

Error: Package: postgresql15-server-15.5-1PGDG.rhel7.x86_64 (pgdg15)
           Requires: libzstd.so.1()(64bit)

则执行下面的命令进行相关依赖包的安装:

yum install -y epel-release.noarch
yum install -y libzstd.x86_64

安装依赖成功之后再次执行 PostgreSQL 服务的安装命令即可。

2-3、安装后的配置

由于 RedHat 系列发行版的政策原因,PostgreSQL 安装完成之后不会自动启动,同时也不会自动初始化数据库。所以需要执行下面的命令来使整个安装完成:

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

执行完成之后可以查看 PostgreSQL 的运行状态:

$ systemctl status postgresql-15
--------------------------------
● postgresql-15.service - PostgreSQL 15 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2024-01-07 04:19:12 UTC; 8s ago
     Docs: https://www.postgresql.org/docs/15/static/

二、PostgreSQL 相关命令与配置


1、登录 PostgreSQL 服务

安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空,我们需要先切换到该用户再登录数据库:

su - postgres

此时会出现相应的 bash 命令行提示符 -bash-4.2$ ,我们直接输入 psql 命令登录:

-bash-4.2$ psql
psql (15.5)
Type "help" for help.

postgres=#

psql 命令使用的是数据库默认内置的用户 postgres 进行登录的,所以该命令和 psql -U postgres 是一样的效果,我们可以使用 \du 命令查看当前的数据库用户:

postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {
   }

密码修改:为了方便我们后续远程登录,我们可以修改一下修改密码:

postgres=# alter user postgres with password '123456';
ALTER ROLE

输入 \q 命令退出登录。

2、配置远程登录

PostgreSQL 的配置文件存放在 /var/lib/pgsql/15/data 目录下,修改 postgresql.conf 配置文件:

vi postgresql.conf

找到 listen_addresses 参数行,原本是被注释的,默认值是 localhost 表示只能本地登录,我们在下面仿照将该参数修改为 *

# - Connection Settings -
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*'

同时修改同目录下的 pg_hba.conf 配置文件,在 IPv4 local connections 下添加一行 host all all 0.0.0.0/0 md5

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             0.0.0.0/0               md5

配置完成之后重启一下服务:

systemctl restart postgresql-15

重启完成之后,就可以使用第三方数据库管理工具进行远程登录访问了。

相关推荐

  1. Linux Redis 环境

    2024-01-11 08:08:02       63 阅读
  2. Linux 服务器环境

    2024-01-11 08:08:02       38 阅读
  3. Linux-基础环境

    2024-01-11 08:08:02       39 阅读
  4. Linux tftp 环境

    2024-01-11 08:08:02       33 阅读
  5. Linux nfs 环境

    2024-01-11 08:08:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 08:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 08:08:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 08:08:02       82 阅读
  4. Python语言-面向对象

    2024-01-11 08:08:02       91 阅读

热门阅读

  1. C语言中顺序栈的实现与表示

    2024-01-11 08:08:02       52 阅读
  2. 面试题-手撕NMS(非极大值抑制)

    2024-01-11 08:08:02       62 阅读
  3. 【前端】html5用range型input标签怎么显示数字

    2024-01-11 08:08:02       59 阅读
  4. 前端计算精度丢失问题

    2024-01-11 08:08:02       61 阅读
  5. python实现对导入包中的全局变量进行修改

    2024-01-11 08:08:02       54 阅读
  6. ruoyi el-table调整

    2024-01-11 08:08:02       60 阅读
  7. openssl缺少libssl.so.1.1库文件

    2024-01-11 08:08:02       57 阅读
  8. metartc5_jz源码阅读-udp->receive

    2024-01-11 08:08:02       58 阅读