在CentOS 7.6上安装PostgreSQL 13.3

这是有关从PostgreSQL的新安装到使用pgAdmin进行连接的记录。

image.png

DB服务器
CentOS 7.6
postgreSQL 13.3
※仅需在安装时使用互联网连接环境
※selinux、firewalld暂停

管理服务器
Windows Server 2019
pgAdmin 4 版本5.2

1. 安装PostgreSQL

由于CentOS 7的默认软件包是postgreSQL9.2版本,因此我们将按照postgreSQL官方网站的指示进行安装。

image.png
image.png
image.png
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Install PostgreSQL:
sudo yum install -y postgresql13-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

在Linux上安装PostgreSQL存储库。

[root@cent76-d2 ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

现在,安装目标postgreSQL13已经显示出来了。

[root@cent76-d2 ~]# yum list postgresql13*
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ty1.mirror.newmediaexpress.com
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
利用可能なパッケージ
postgresql13.x86_64                    13.3-1PGDG.rhel7                       pgdg13
postgresql13-contrib.x86_64            13.3-1PGDG.rhel7                       pgdg13
postgresql13-devel.x86_64              13.3-1PGDG.rhel7                       pgdg13
postgresql13-docs.x86_64               13.3-1PGDG.rhel7                       pgdg13
postgresql13-libs.x86_64               13.3-1PGDG.rhel7                       pgdg13
postgresql13-llvmjit.x86_64            13.3-1PGDG.rhel7                       pgdg13
postgresql13-odbc.x86_64               13.00.0000-1PGDG.rhel7                 pgdg13
postgresql13-plperl.x86_64             13.3-1PGDG.rhel7                       pgdg13
postgresql13-plpython3.x86_64          13.3-1PGDG.rhel7                       pgdg13
postgresql13-pltcl.x86_64              13.3-1PGDG.rhel7                       pgdg13
postgresql13-server.x86_64             13.3-1PGDG.rhel7                       pgdg13
postgresql13-test.x86_64               13.3-1PGDG.rhel7                       pgdg13
[root@cent76-d2 ~]# 

我将安装本次要使用的PostgreSQL 13。

[root@cent76-d2 ~]# yum install -y postgresql13-server

《中略》

================================================================================================================
 Package                                アーキテクチャー      バージョン               リポジトリー        容量
================================================================================================================
インストール中:
 postgresql13-server                    x86_64                13.3-1PGDG.rhel7         pgdg13             5.4 M
依存性関連でのインストールをします:
 postgresql13                           x86_64                13.3-1PGDG.rhel7         pgdg13             1.4 M
 postgresql13-libs                      x86_64                13.3-1PGDG.rhel7         pgdg13             380 k

トランザクションの要約
================================================================================================================
インストール  1 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 7.2 M
インストール容量: 30 M

《中略》

インストール:
  postgresql13-server.x86_64 0:13.3-1PGDG.rhel7                                                                                                                                    

依存性関連をインストールしました:
  postgresql13.x86_64 0:13.3-1PGDG.rhel7                                                postgresql13-libs.x86_64 0:13.3-1PGDG.rhel7                                               

完了しました!
[root@cent76-d2 ~]# 

另外,如果尝试安装postgresql13相关的所有内容时出现错误并无法完成。
在这种情况下,您可以安装额外的存储库来解决该问题。

[root@cent76-d2 ~]# yum install -y postgresql13*

《中略》

エラー: パッケージ: postgresql13-devel-13.3-1PGDG.rhel7.x86_64 (pgdg13)
             要求: llvm5.0-devel >= 5.0
エラー: パッケージ: postgresql13-llvmjit-13.3-1PGDG.rhel7.x86_64 (pgdg13)
             要求: llvm5.0 >= 5.0
エラー: パッケージ: postgresql13-devel-13.3-1PGDG.rhel7.x86_64 (pgdg13)
             要求: llvm-toolset-7-clang >= 4.0.1
エラー: パッケージ: postgresql13-llvmjit-13.3-1PGDG.rhel7.x86_64 (pgdg13)
             要求: libLLVM-5.0.so()(64bit)
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest
[root@cent76-d2 ~]# 
[root@cent76-d2 ~]# yum -y install epel-release centos-release-scl

《中略》

インストール:
  centos-release-scl.noarch 0:2-3.el7.centos                                                                 epel-release.noarch 0:7-11                                                                

依存性関連をインストールしました:
  centos-release-scl-rh.noarch 0:2-3.el7.centos                                                                                                                                                         

完了しました!
[root@cent76-d2 ~]# 

2. PostgreSQL的自动启动和运行

启用进程的自动启动。

[root@cent76-d2 ~]# systemctl enable postgresql-13
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-13.service to /usr/lib/systemd/system/postgresql-13.service.

[root@cent76-d2 ~]# systemctl is-enabled postgresql-13
enabled
[root@cent76-d2 ~]# 

启动进程时出现错误。

[root@cent76-d2 ~]# systemctl start postgresql-13
Job for postgresql-13.service failed because the control process exited with error code. See "systemctl status postgresql-13.service" and "journalctl -xe" for details.
[root@cent76-d2 ~]# 

由于未执行initdb处理,导致错误的原因,因此将执行initdb。

root@cent76-d2 ~]# /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK

[root@cent76-d2 ~]# 

这样做将使进程顺利启动。

[root@cent76-d2 ~]# systemctl start postgresql-13
[root@cent76-d2 ~]# 

3. 本地连接确认

首先,在本地进行连接确认。

[root@cent76-d2 ~]# sudo -u postgres psql -U postgres
could not change directory to "/root": 許可がありません
psql (13.3)
Type "help" for help.

postgres=# 
postgres=# \q
[root@cent76-d2 ~]# 

4.远程连接设置(postgresql.conf)

為了定義接受遠程連接的自段落,我們將在以下的配置文件中添加附加信息。最頂部的一行是要添加的部分。

文件路径:/var/lib/pgsql/13/data/postgresql.conf

listen_addresses = '*'                  ### CUSTOM ADD ###
#listen_addresses = 'localhost'     # what IP address(es) to listen on;

5. 远程连接配置 (pg_hba.conf)

为了对远程连接的段进行连接授权设置,我们需要在下面的配置文件中进行追加。最后两行是追加部分。

文件路径:/var/lib/pgsql/13/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

### CUSTOM ADD ###
host    all             postgres        10.0.1.0/24             trust
項目内容説明TYPEhost認証対象。’host’は任意の対象。DATABASEall対象DB。’all’は全てのDBを対象。USERpostgres対象ユーザ。’postgres’でスーパーユーザのみの指定ADDRESS10.0.1.0/24接続元。指定のセグメントをCIDR表記で記載。METHODtrust認証方式。trustは認証無しでログイン可能。

建议在合适的构建阶段将认证方法设置为”trust”时,改为使用md5认证或peer认证,因为仅使用用户名即可连接。

通过pgAdmin进行连接。

image.png
image.png
image.png
image.png
广告
将在 10 秒后关闭
bannerAds