如何在 Ubuntu 22.04 上安装 PostgreSQL
PostgreSQL 是一个开源的、最流行的关系数据库管理系统之一。它实现了 SQL 查询语言,并提供强大的稳定性、性能和数据完整性。您可以使用 PostgreSQL 数据库运行关键任务应用程序。 PostgreSQL 具有 Nest 事务、多版本并发控制、表继承、异步复制、外键引用完整性等功能。
这篇文章将向您展示如何在 Ubuntu 22.04 上安装 PostgreSQL 数据库。
先决条件
- 运行 Ubuntu 22.04 的服务器。
- 服务器上配置了 root 密码。
入门
首先,使用以下命令将所有系统软件包更新并升级到最新版本:
apt update -y
apt upgrade -y
一旦您的系统是最新的,您可以使用以下命令安装其他所需的依赖项:
apt install wget curl gnupg2 -y
安装所有依赖项后,您可以继续安装 InfluxDB。
添加 PostgreSQL 存储库
默认情况下,Ubuntu 22.04 默认存储库中不提供最新版本的 PostgreSQL。因此,您需要将 PostgreSQL 官方存储库添加到您的系统中。
您可以使用以下命令添加 PostgreSQL 存储库和 GPG 密钥:
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
接下来,使用以下命令更新 PostgreSQL 存储库:
apt update -y
在 Ubuntu 22.04 上安装 PostgreSQL
您现在可以通过运行以下命令来安装 PostgreSQL 15:
apt install postgresql postgresql-client -y
安装 PostgreSQL 后,使用以下命令验证 PostgreSQL 的状态:
systemctl status postgresql
您应该得到以下输出:
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-12-05 14:28:18 UTC; 1min 57s ago
Main PID: 10824 (code=exited, status=0/SUCCESS)
CPU: 4ms
Dec 05 14:28:18 ubuntu2204 systemd[1]: Starting PostgreSQL RDBMS...
Dec 05 14:28:18 ubuntu2204 systemd[1]: Finished PostgreSQL RDBMS.
要检查 PostgreSQL 版本,请运行以下命令:
sudo -u postgres psql -c "SELECT version();"
您将得到以下输出:
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 15.1 (Ubuntu 15.1-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit
(1 row)
配置 PostgreSQL 进行远程连接
默认情况下,PostgreSQL 仅允许来自本地主机的连接。如果你想允许远程连接,那么你需要编辑 PostgreSQL 配置文件并定义身份验证方法。您可以通过编辑以下文件来完成此操作:
nano /etc/postgresql/15/main/pg_hba.conf
更改以下行:
local all all trust
host all all 0.0.0.0/0 md5
完成后保存并关闭文件。然后,编辑 PostgreSQL 主配置文件并更改监听端口:
nano /etc/postgresql/15/main/postgresql.conf
更改以下行:
listen_addresses='*'
保存并关闭文件,然后重新启动 PostgreSQL 服务以应用更改:
systemctl restart postgresql
创建管理用户
最好创建一个管理用户来管理其他用户和数据库。首先,使用以下命令登录 PostgreSQL shell:
sudo -u postgres psql
登录后,您将获得以下 shell:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
Type "help" for help.
postgres=#
接下来,使用以下命令创建管理员用户并设置密码:
CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'password';
接下来,使用以下命令验证创建的用户:
\du
您应该看到以下输出:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
root | Superuser, Create role, Create DB | {}
在 PostgreSQL 中创建数据库和用户
在本节中,我们将向您展示如何在 PostgreSQL 中创建数据库和用户。
要在 PostgreSQL 中创建名为 wpdb 的数据库,请运行以下命令:
create database wpdb;
要在 PostgreSQL 中创建名为 wpuser 的用户,请运行以下命令:
create user wpuser with encrypted password 'password';
要授予 wpdb 数据库的所有权限,请运行以下命令:
grant all privileges on database wpdb to wpuser;
您可以使用以下命令列出所有数据库:
\l
您应该在以下输出中获得所有数据库的列表:
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
wpdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =Tc/postgres +
| | | | | | | postgres=CTc/postgres+
| | | | | | | wpuser=CTc/postgres
(4 rows)
如何从远程计算机连接 PostgreSQL
此时,PostgreSQL 已安装并配置为允许来自远程主机的连接。要验证 PostgreSQL 远程连接,请运行以下命令:
psql 'postgres://wpuser:password@postgres-ip-address:5432/wpdb?sslmode=disable'
结论
恭喜!您已在 Ubuntu 22.04 上成功安装并配置了 PostgreSQL 服务器。您现在可以在生产环境中使用 PostgreSQL 来实现高性能和数据完整性。如果您有任何疑问,请随时问我。