在CentOS 7.6上安装PostgreSQL 13.3
这是有关从PostgreSQL的新安装到使用pgAdmin进行连接的记录。
DB服务器
CentOS 7.6
postgreSQL 13.3
※仅需在安装时使用互联网连接环境
※selinux、firewalld暂停
管理服务器
Windows Server 2019
pgAdmin 4 版本5.2
1. 安装PostgreSQL
由于CentOS 7的默认软件包是postgreSQL9.2版本,因此我们将按照postgreSQL官方网站的指示进行安装。
# 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认证,因为仅使用用户名即可连接。