Ubuntu 22.04 PostgreSQL 安装
PostgreSQL 是一个数据库管理系统,在许多方面与 MySQL 类似,但也有一些关键区别。与 MySQL 一样,它通常托管在 Linux 上。在本指南中,我们将展示如何在 Ubuntu 22.04 Jammy Jellyfish 上运行 PostgreSQL 服务器,以及如何安装客户端版本(以防您只需要连接到外部 PostgreSQL 数据库)。
在本教程中您将学习:
如何安装 PostgreSQL 客户端
如何连接到 PostgreSQL 服务器
如何安装和配置 PostgreSQL 服务器
安装 PostgreSQL 客户端
PostgreSQL 客户端可用于连接到外部 PostgreSQL 数据库。如果您已启动并运行数据库服务器,但需要能够从一个或多个客户端系统远程访问数据库,请使用此选项。
首先,打开命令行终端并输入以下两个 apt 命令来安装 postgresql-client 包:
$ sudo apt update $ sudo apt install postgresql-client
PostgreSQL客户端安装完成后,您可以使用
psql
命令连接到远程PostgreSQL服务器。您需要指定远程服务器的主机名或 IP 地址(在下面的示例中显示为postgre-server
)以及您的用户名(下面的postgre-user
)正在验证:$ psql -h postgre-server -U postgre-user psql (14.2 (Ubuntu 14.2-1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help.
这就是客户端版本。在下一节中,我们将展示如何设置 PostgreSQL 服务器,该服务器将能够接受传入的客户端连接。
安装 PostgreSQL 服务器
要开始托管 PostgreSQL 数据库,请使用以下命令在 Ubuntu 22.04 上安装
postgresql
软件包:$ sudo apt update $ sudo apt install postgresql
PostgreSQL Server 完成安装后,您应该能够看到它正在侦听端口
5432
上的传入连接。这是确认它是否按预期启动并运行的好方法。$ ss -nlt
默认情况下,PostgreSQL Server 将在每次系统启动时自动启动。如果您想更改此行为,可以随时使用以下命令进行修改:
$ sudo systemctl disable postgresql
要重新启用它,只需将
disable
替换为enable
即可。默认情况下,PostgreSQL Server 仅侦听本地环回接口
127.0.0.1
。如果您计划让一个或多个远程客户端连接到您的数据库服务器,则需要将 PostgreSQL 配置为侦听不同的网络接口。要进行此更改,请使用 nano 或您喜欢的文本编辑器打开 PostgreSQL 的配置文件:$ sudo nano /etc/postgresql/14/main/postgresql.conf
在此文件中,在“连接和身份验证”部分下的某处添加以下行。这将指示 PostgreSQL 在所有网络接口上侦听传入连接。
listen_addresses = '*'
保存更改并退出配置文件。然后,重新启动 PostgreSQL 服务器以使更改生效。
$ sudo systemctl restart postgresql
您现在应该能够看到 PostgreSQL 正在监听套接字
0.0.0.0:5432
。您可以通过再次执行 ss 命令来确认这一点:$ ss -nlt
接下来,您应该将以下行添加到
/etc/postgresql/14/main/pg_hba.conf
配置文件中,这将允许传入客户端连接到所有数据库和用户。md5
选项指定用户必须使用密码进行身份验证。host all all 0.0.0.0/0 md5
要使用单个命令将此行添加到文件中,只需执行:
$ sudo bash -c "echo host all all 0.0.0.0/0 md5 >> /etc/postgresql/14/main/pg_hba.conf"
最后,如果您启用了 UFW 防火墙,则可以通过执行以下命令向任何传入 TCP 流量打开 PostgreSQL Server 的侦听端口
5432
:$ sudo ufw allow from any to any port 5432 proto tcp Rule added Rule added (v6)
结束语
在本教程中,我们学习了如何在 Ubuntu 22.04 Jammy Jellyfish Linux 上托管 PostgreSQL 服务器。我们还了解了如何执行一些初始配置,以便我们的数据库能够接受来自任何源和任何用户的传入连接。除此之外,我们还了解了如何使用 PostgreSQL 客户端包连接到远程 PostgreSQL 服务器。