如何在CentOS 8 Linux上安装pgAdmin 4
PostgreSQL是流行的功能强大且开源的对象关系数据库系统,具有超过15年的积极开发经验并在可靠性方面享有盛誉。 pgAdmin是领先的开源功能丰富的PostgreSQL管理和开发平台,可在Linux,Unix,Mac OS X和Windows上运行。本教程将向我们展示如何在CentOS 8 Linux上安装pgAdmin 4.
pgAdmin 4的功能
pgAdmin 4的功能包括:自动检测并支持在运行时发现的对象实时SQL查询工具具有直接数据编辑功能支持管理查询语法高亮的SQL编辑器重新设计的图形界面强大的管理对话框和工具可用于常见任务响应,上下文敏感的行为支持的错误消息支持hintsonline帮助以及有关使用pgAdmin对话框和工具的信息。
启用EPEL储存库
使用下面的指南添加EPEL存储库。
在CentOS 8上启用EPEL
不要忘记启用PowerTools存储库,因为它包含非常需要的软件包。
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf config-manager --set-enabled PowerTools
安装PostgreSQL数据库服务器
我们需要先在系统上安装PostgreSQL,然后才能安装pgAdmin4. 以下是安装PostgreSQL的指南:
在CentOS 8上安装PostgreSQL 13
在CentOS 8上安装PostgreSQL 12
如何在CentOS 8上安装PostgreSQL 11
在CentOS 8上安装pgAdmin4
在安装PostgreSQL之后,我们可以在CentOS 8上开始安装pgAdmin4. 我们需要添加PostgreSQL RPM存储库,这应该在安装PostgreSQL时完成。
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
然后安装pgAdmin软件包:
sudo dnf -qy module disable postgresql sudo dnf install pgadmin4
按y键接受安装提示。
Dependencies resolved. ================================================================================================================================================================== Package Architecture Version Repository Size ================================================================================================================================================================== Installing: pgadmin4 x86_64 4.27-1.rhel8 pgdg-common 17 k Installing dependencies: apr x86_64 1.6.3-9.el8 AppStream 125 k apr-util x86_64 1.6.1-6.el8 AppStream 105 k centos-logos-httpd noarch 80.5-2.el8 BaseOS 24 k httpd x86_64 2.4.37-21.module_el8.2.0+494+1df74eae AppStream 1.7 M httpd-filesystem noarch 2.4.37-21.module_el8.2.0+494+1df74eae AppStream 36 k httpd-tools x86_64 2.4.37-21.module_el8.2.0+494+1df74eae AppStream 103 k libsodium x86_64 1.0.18-2.el8 epel 162 k mailcap noarch 2.1.48-3.el8 BaseOS 39 k mod_http2 x86_64 1.11.3-3.module_el8.2.0+486+c01050f0.1 AppStream 156 k pgadmin4-docs noarch 4.27-1.rhel8 pgdg-common 48 M pgadmin4-python3-Flask-Mail noarch 0.9.1-4.rhel8.1 pgdg-common 24 k pgadmin4-python3-alembic noarch 0.9.7-4.rhel8 pgdg-common 268 k pgadmin4-python3-dateutil noarch 1:2.8.0-1.rhel8 pgdg-common 290 k pgadmin4-python3-flask noarch 1:1.0.2-1.rhel8 pgdg-common 153 k pgadmin4-python3-flask-babelex noarch 0.9.3-1.rhel8.1 pgdg-common 23 k pgadmin4-python3-flask-compress noarch 1.4.0-1.rhel8 pgdg-common 15 k pgadmin4-python3-flask-gravatar noarch 0.5.0-1.rhel8.1 pgdg-common 17 k pgadmin4-python3-flask-login noarch 0.4.1-1.rhel8 pgdg-common 34 k pgadmin4-python3-flask-migrate noarch 2.4.0-1.rhel8 pgdg-common 28 k pgadmin4-python3-flask-paranoid noarch 0.2-1.rhel8.1 pgdg-common 15 k pgadmin4-python3-flask-principal noarch 0.4.0-14.rhel8.1 pgdg-common 20 k pgadmin4-python3-flask-security-too noarch 3.3.3-1.rhel8 pgdg-common 144 k pgadmin4-python3-flask-sqlalchemy noarch 2.3.2-1.rhel8.1 pgdg-common 109 k pgadmin4-python3-flask-wtf noarch 0.14.2-1.rhel8.1 pgdg-common 59 k pgadmin4-python3-paramiko noarch 2.6.0-3.rhel8 pgdg-common 288 k pgadmin4-python3-passlib noarch 1.7.2-1.rhel8 pgdg-common 757 k pgadmin4-python3-psutil x86_64 5.7.0-1.rhel8 pgdg-common 396 k pgadmin4-python3-simplejson x86_64 3.16.0-1.rhel8 pgdg-common 278 k pgadmin4-python3-six noarch 1.12.0-3.rhel8 pgdg-common 35 k pgadmin4-python3-speaklater noarch 1.3-3.rhel8.1 pgdg-common 15 k pgadmin4-python3-sqlalchemy x86_64 1.2.18-1.rhel8 pgdg-common 3.9 M pgadmin4-python3-sqlparse noarch 0.3.0-1.rhel8 pgdg-common 81 k pgadmin4-python3-sshtunnel noarch 0.1.4-1.rhel8 pgdg-common 45 k pgadmin4-python3-werkzeug noarch 0.15.4-1.rhel8 pgdg-common 464 k pgadmin4-python3-wtforms noarch 2.2.1-1.rhel8 pgdg-common 184 k pgadmin4-pytz noarch 2017.1-1.rhel8 pgdg-common 54 k pgadmin4-web noarch 4.27-1.rhel8 pgdg-common 6.3 M policycoreutils-python-utils noarch 2.9-9.el8 BaseOS 251 k python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k python3-blinker noarch 1.4-4.el8 epel 114 k python3-click noarch 6.7-8.el8 AppStream 131 k python3-flask noarch 1:0.12.2-4.el8 AppStream 141 k python3-itsdangerous noarch 0.24-14.el8 AppStream 31 k python3-ldap3 noarch 2.8.1-2.el8 epel 535 k python3-mako noarch 1.0.6-13.el8 AppStream 157 k python3-mod_wsgi x86_64 4.6.4-4.el8 AppStream 2.5 M python3-psycopg2 x86_64 2.8.6-1.rhel8 pgdg-common 178 k python3-pyasn1 noarch 0.3.7-6.el8 AppStream 126 k python3-pynacl x86_64 1.3.0-5.el8 epel 100 k python3-werkzeug noarch 0.12.2-4.el8 AppStream 457 k Installing weak dependencies: apr-util-bdb x86_64 1.6.1-6.el8 AppStream 25 k apr-util-openssl x86_64 1.6.1-6.el8 AppStream 27 k Enabling module streams: httpd 2.4 Transaction Summary ================================================================================================================================================================== Install 53 Packages Total download size: 69 M Installed size: 154 M Is this ok [y/N]: y
询问时导入GPG:
Total 26 MB/s | 69 MB 00:02 warning: /var/cache/dnf/epel-6519ee669354a484/packages/libsodium-1.0.18-2.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY Extra Packages for Enterprise Linux 8 - x86_64 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x2F86D6A1: Userid : "Fedora EPEL (8) <theitroad@localhost>" Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 Is this ok [y/N]: y
在CentOS 8上配置pgAdmin 4
现在我们已经安装了pgAdmin 4,让我们对其进行配置。
1.启动并启用httpd服务以在启动时启动:
sudo systemctl start httpd && sudo systemctl enable httpd
我们可以通过运行以下命令确认服务状态:
$systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2017-01-15 12:59:34 EAT; 6s ago Docs: man:httpd.service(8) Main PID: 3310 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 11512) Memory: 36.6M CGroup: /system.slice/httpd.service ├─3310 /usr/sbin/httpd -DFOREGROUND ├─3311 /usr/sbin/httpd -DFOREGROUND ├─3312 /usr/sbin/httpd -DFOREGROUND ├─3313 /usr/sbin/httpd -DFOREGROUND └─3314 /usr/sbin/httpd -DFOREGROUND Jan 15 12:59:34 cent8.novalocal systemd[1]: Starting The Apache HTTP Server… Jan 15 12:59:34 cent8.novalocal httpd[3310]: Server configured, listening on: port 80 Jan 15 12:59:34 cent8.novalocal systemd[1]: Started The Apache HTTP Server.
2.重命名pgAdmin Apache配置示例:
sudo cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf
确认配置语法以防止任何错误,然后重新启动httpd服务。
$sudo httpd -t Syntax OK $sudo systemctl restart httpd
4.创建pgAdmin数据目录:
sudo mkdir -p /var/lib/pgadmin4//var/log/pgadmin4/
5.编辑config_local.py并添加以下设置。在大多数情况下,默认文件位置应适当:
sudo vi /usr/lib/python3.6/site-packages/pgadmin4-web/config_distro.py
加:
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log' SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db' SESSION_DB_PATH = '/var/lib/pgadmin4/sessions' STORAGE_DIR = '/var/lib/pgadmin4/storage'
6.
运行以下命令创建配置数据库:
sudo dnf -y install python3-bcrypt python3-pynacl sudo python3 /usr/lib/python3.6/site-packages/pgadmin4-web/setup.py
这将要求我们输入用于初始pgAdmin用户帐户的"电子邮件地址"和"密码"。
Email address: theitroad@localhost Password: <INPUT PASSWORD> Retype password:<Confirm PASSWORD> pgAdmin 4 - Application Initialisation ======================================
将pgAdmin目录的权限设置为" apache"用户:
sudo chown -R apache:apache /var/lib/pgadmin4 /var/log/pgadmin4
配置SELinux
将pgAdmin目录的权限设置为" apache"用户:
sudo chown -R apache:apache /var/lib/pgadmin4 /var/log/pgadmin4
如果我们以强制模式运行SELinux,请创建并应用策略以允许Apache用户访问pgAdmin目录:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin4(/.*)?" sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/pgadmin4(/.*)?" sudo restorecon -Rv /var/lib/pgadmin4/ sudo restorecon -Rv /var/log/pgadmin4/
重新启动httpd服务。
sudo systemctl restart httpd
访问pgAdmin 4 Web界面
如果我们有活动的防火墙服务,请允许http端口:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
打开" http://servername_or_ip/pgadmin4"以使用上面步骤" 6"创建的凭据登录pgAdmin。
在pgAdmin的第一页上,单击"添加新服务器",添加一个PostgreSQL服务器以使用pgAdmin进行管理。这可以是本地或者远程PostgreSQL服务器。
在"常规"部分下,为服务器命名和描述。
在Connectiontab下,提供访问详细信息数据库主机,数据库用户和密码。
完成后,点击保存按钮以保存
配置。如果我们成功添加服务器,则名称将为
出现在左侧边栏中。选择服务器以查看数据库摘要
信息并进行更改。