本教程适用于以下操作系统版本
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 15.04 (Vivid Vervet)
本页内容
- 先决条件
- 入门准备
- 添加 PostgreSQL 仓库
- 在 Ubuntu 22.04 上安装 PostgreSQL
- 配置 PostgreSQL 以允许远程连接
- 创建管理员用户
- 在 PostgreSQL 中创建数据库和用户
- 如何从远程主机连接 PostgreSQL
- 结论
PostgreSQL 是一个开源且最受欢迎的关系型数据库管理系统之一。它实现了 SQL 查询语言,并提供强大的稳定性、性能与数据完整性。你可以使用 PostgreSQL 数据库来运行关键业务应用。PostgreSQL 具有嵌套事务、多版本并发控制、表继承、异步复制、外键引用完整性等特性。
本文将向你展示如何在 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 仅允许来自 localhost 的连接。如果你想允许远程连接,则需要编辑 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 以实现高性能与数据完整性。如有任何疑问,欢迎随时向我提问。