在 Ubuntu 22.04/20.04/18.04/16.04 上安装 PostgreSQL 11
本简短指南将帮助您在 Ubuntu 22.04/20.04/18.04/16.04 上安装 PostgreSQL 11。 PostgreSQL Server 是一个强大的开源且高度可扩展的数据库服务器。 PostgreSQL 提供对象关系数据库系统,允许您管理广泛的 SQL 数据集。
PostgreSQL 11 的主要增强功能:
- 分区功能的改进
- 支持嵌入式事务的 SQL 存储过程
- 并行性的改进
- 窗口函数现在支持 SQL:2011 标准中显示的所有框架选项
- 对某些 SQL 代码进行可选的即时 (JIT) 编译,加快表达式的计算速度
- 性能改进,包括能够避免对 ALTER TABLE … ADD COLUMN 使用非空列默认值进行表重写
- 现在可以使用 CREATE INDEX 的 INCLUDE 子句创建覆盖索引
对于CentOS/Fedora,请参考:
如何在 Fedora 上安装 PostgreSQL 11
如何在 CentOS 7 上安装 PostgreSQL 11
如何在 CentOS 8/RHEL 8 上安装 PostgreSQL 11
发布页面重点介绍了 PostgreSQL 11 中提供的所有新功能。按照下一节中提供的步骤在 Ubuntu 22.04/20.04/18.04/16.04 上安装 PostgreSQL 11。
第1步:更新系统并安装依赖项
如果是新的服务器实例,建议更新当前的系统包。
sudo apt update && sudo apt -y upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f
系统重新启动后,安装 vim
和 wget
(如果尚未安装)。
sudo apt install -y wget vim
步骤 2:添加 PostgreSQL 11 APT 存储库
在将存储库内容添加到 Ubuntu 22.04/20.04/18.04/16.04 系统之前,您需要导入存储库签名密钥:
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
导入 GPG 密钥后,将存储库内容添加到您的 Ubuntu 22.04/20.04/18.04/16.04 系统:
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
验证存储库文件内容
$ cat /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
步骤 3:在 Ubuntu 22.04/20.04/18.04/16.04 上安装 PostgreSQL 11
最后一个安装步骤适用于 PostgreSQL 11 软件包。运行以下命令在 Ubuntu 22.04/20.04/18.04/16.04 上安装 PostgreSQL 11。
sudo apt update
sudo apt -y install postgresql-11
步骤 4:允许从远程主机访问 PostgreSQL
默认情况下,只能从本地主机访问 PostgreSQL 数据库服务器。
$ sudo ss -tunelp | grep 5432
tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=15785,fd=3)) uid:111 ino:42331 sk:6 <->
要允许网络访问,请编辑配置文件:
sudo vim /etc/postgresql/11/main/postgresql.conf
在连接和身份验证部分下添加以下行。
listen_addresses = '*'
您还可以指定服务器IP地址
listen_addresses = '192.168.17.12'
请参阅下面的屏幕截图。
更改后不要忘记重新启动 postgresql
服务
sudo systemctl restart postgresql
确认 PostgreSQL 的绑定地址:
$ sudo ss -tunelp | grep 5432
tcp LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* users:(("postgres",pid=16066,fd=3)) uid:111 ino:42972 sk:8 <-> tcp LISTEN 0 128 [::]:5432 [::]:* users:(("postgres",pid=16066,fd=6)) uid:111 ino:42973 sk:9 v6only:1 <->
如果您有活动的 UFW 防火墙,请允许端口 5432
sudo ufw allow 5432/tcp
第 5 步:设置 PostgreSQL 管理员用户的密码并进行测试
为默认管理员用户设置密码
$ sudo su - postgres
postgres@os1:~$ psql -c "alter user postgres with password 'StrongPassword'"
ALTER ROLE
您还可以添加其他数据库用户:
createuser dbuser1
添加测试数据库:
postgres@ubuntu-01:~$ createdb testdb -O dbuser1
通过以 dbuser1 身份登录并在 testdb 上进行操作来执行测试操作
~$ psql -l | grep testdb
testdb | dbuser1 | LATIN1 | en_US | en_US |
设置用户密码:
$ psql
psql (11.16 (Ubuntu 11.16-1.pgdg22.04+1))
Type "help" for help.
postgres=# alter user dbuser1 with password 'DBPassword';
ALTER ROLE
创建表并添加一些虚拟数据:
testdb=# create table test_table ( id int,first_name text, last_name text );
CREATE TABLE
testdb=# insert into test_table (id,first_name,last_name) values (1,'John','Doe');
INSERT 0 1
显示表数据
testdb=# select * from test_table;
id | first_name | last_name
----+------------+-----------
1 | John | Doe
(1 row)
删除我们的测试表
testdb=# DROP TABLE test_table;
DROP TABLE
testdb=# \q
删除测试数据库
postgres@ubuntu-01:~$ dropdb testdb;
第6步:安装Web管理工具(可选)
为了便于管理,请考虑将 pgAdmin 4 安装到您的 Ubuntu 系统上。
- 如何在 Ubuntu 上安装 pgAdmin4
您已在 Ubuntu 22.04/20.04/18.04 /16.04 上成功安装 PostgreSQL 数据库服务器并执行了一些测试。
学习 PostgreSQL 数据库的最佳视频课程:
- SQL 和 PostgreSQL:完整的开发人员指南
- 完整的 Python/PostgreSQL 课程 2.0
- SQL 和 PostgreSQL 初学者:成为 SQL 专家
- 使用 PostgreSQL 学习 SQL:从零到英雄
- PostgreSQL 训练营:从初级到高级,60 多个小时
相关指南:
在 Debian 上安装 PostgreSQL 11
在 CentOS 7 上安装 PostgreSQL 11
在 CentOS 8 上安装 PostgreSQL 11