如何在CentOS 8/RHEL 8上安装PostgreSQL 11
如何在CentOS 8/RHEL 8 Linux上安装PostgreSQL 11? PostgreSQL是一个基于POSTGRES 4.2的对象关系数据库管理系统,由加利福尼亚大学伯克利分校计算机科学系开发。 PostgreSQL提供了许多现代的SQL功能,例如:复杂查询外键触发可更新视图事务完整性多版本并发控制
PostgreSQL项目为最常见的发行版提供了所有受支持版本的软件包的存储库。支持的发行版包括所有Red Hat系列,其中包括CentOS,Fedora,Scientific Linux,Oracle Linux和Red Hat Enterprise Linux。
正式维护的CentOS 8/RHEL 8上可用的PostgreSQL版本是10和9.6. 好的,添加托管所有最新发行版的PostgreSQL Yum存储库。
添加PostgreSQL Yum存储库
PostgreSQL Yum存储库将与常规系统和补丁程序管理集成,并在PostgreSQL的整个支持生命周期内为所有受支持的PostgreSQL版本提供自动更新。
可以通过运行以下命令将其添加到CentOS/RHEL 8系统中:
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
通过以下方式查看软件包详细信息:
$rpm -qi pgdg-redhat-repo Name : pgdg-redhat-repo Version : 42.0 Release : 4 Architecture: noarch Install Date: Mon 16 Sep 2019 04:17:45 PM EDT Group : System Environment/Base Size : 6915 License : PostgreSQL Signature : DSA/SHA1, Tue 16 Apr 2019 11:44:04 PM EDT, Key ID 1f16d2e1442df0f8 Source RPM : pgdg-redhat-repo-42.0-4.src.rpm Build Date : Tue 16 Apr 2019 11:44:04 PM EDT Build Host : koji-rhel8-x86-64-pgbuild Relocations : (not relocatable) Vendor : PostgreSQL Global Development Group URL : https://yum.postgresql.org Summary : PostgreSQL PGDG RPMs- Yum Repository Configuration for Red Hat/CentOS/Scientific Linux Description : This package contains yum configuration for Red Hat Enterprise Linux, CentOS and Scientific Linux. and also the GPG key for PGDG RPMs.
在CentOS 8/RHEL 8 Linux系统上安装PostgreSQL 11
禁用postgresql模块。
$sudo dnf module disable postgresql Updating Subscription Management repositories. Last metadata expiration check: 0:03:10 ago on Mon 16 Sep 2019 04:30:11 PM EDT. Dependencies resolved. =================================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================================== Disabling module streams: postgresql 10 Transaction Summary =================================================================================================================================================== Is this ok [y/N]: y Complete!
然后清理yum缓存并在CentOS 8/RHEL 8上安装PostgreSQL 11.
sudo dnf clean all
最后,通过运行以下命令在CentOS 8/RHEL 8上安装PostgreSQL 11服务器和客户端软件包。
sudo dnf -y install postgresql11-server postgresql11
可以使用dnf命令检查次要版本的详细信息。
$dnf info postgresql11-server postgresql11
初始化数据库并启用自动启动
安装后,需要先进行数据库初始化,然后才能启动服务。
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb sudo systemctl enable --now postgresql-11
确认服务已启动,没有任何错误。
$sudo systemctl status postgresql-11 ● postgresql-11.service - PostgreSQL 11 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-09-16 16:41:09 EDT; 7s ago Docs: https://www.postgresql.org/docs/11/static/ Process: 14929 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 14936 (postmaster) Tasks: 8 (limit: 24024) Memory: 16.9M CGroup: /system.slice/postgresql-11.service ├─14936 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/ ├─14937 postgres: logger ├─14939 postgres: checkpointer ├─14940 postgres: background writer ├─14941 postgres: walwriter ├─14942 postgres: autovacuum launcher ├─14943 postgres: stats collector └─14944 postgres: logical replication launcher Sep 16 16:41:09 rhel8.novalocal systemd[1]: Starting PostgreSQL 11 database server... Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.501 EDT [14936] LOG: listening on IPv6 address "::1", port 5432 Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.501 EDT [14936] LOG: listening on IPv4 address "127.0.0.1", port 5432 Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.505 EDT [14936] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQ> Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.511 EDT [14936] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.521 EDT [14936] LOG: redirecting log output to logging collector process Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.521 EDT [14936] HINT: Future log output will appear in directory "log". Sep 16 16:41:09 rhel8.novalocal systemd[1]: Started PostgreSQL 11 database server.
PostgreSQL 11文件是:
/var/lib/pgsql/11/data/postgresql.conf
通读文件以查看可以打开/关闭的设置。提交更改后,应重新启动服务。
设置PostgreSQL管理员用户密码
设置PostgreSQL管理员用户
$sudo su - postgres [theitroad@localhost ~]$psql -c "alter user postgres with password 'StrongPassword'" ALTER ROLE [theitroad@localhost ~]$
创建测试用户和数据库
[theitroad@localhost ~]$psql psql (11.5) Type "help" for help. postgres-# createuser test_user postgres-# alter user test_user with password 'MyDBpassword'; postgres=# createdb test_db -O test_user postgres=# grant all privileges on database test_db to test_user; GRANT
以" test_user"用户身份登录,尝试在数据库上创建表。
$psql -U test_user -h localhost -d test_db
安装pgAdmin 4 Web界面
pgAdmin是领先的开源功能丰富的PostgreSQL管理和开发平台,可在Linux,Unix,Mac OS X和Windows上运行。这是在CentOS 8上安装pgAdmin4的链接。
如何在CentOS 8 Linux上安装pgAdmin 4