在Debian 9 Debian 10上安装PostgreSQL 13

时间:2020-02-23 14:32:20  来源:igfitidea点击:

PostgreSQL是一种开源,强大,弹性和容错的关系数据库管理系统,供电许多任务关键应用程序。
PostgreSQL数据库基于Postgres 4.2.
截至本文更新PostgreSQL的最新稳定版本是版本13. PostgreSQL 13的所有新功能,改进和错误修复在官方发布页面中提供。

以下是一些值得注意的新功能:来自B-Tree索引条目的重复的改进 - 使用聚合或者分区表的空间节省和性能获益从而提高性能。
使用扩展统计数据的索引时,请分类排序释放规划

在Debian 9 Debian 10上安装PostgreSQL 13

如果我们遵循本文中概述的下一步骤,则应在Debian 10上获取PostgreSQL 13的运行和工作安装Debian 9 Linux机器。

在继续之前,建议更新系统和所有已安装的软件包。

sudo apt update
sudo apt -y upgrade

此后重新启动服务器。

sudo reboot

第2步:添加PostgreSQL 12存储库

在配置APT存储库之前导入用于签名包的GPG密钥:

sudo apt update
sudo apt -y install gnupg2
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add 

导入GPG密钥后,将PostgreSQL存储库添加到Debian系统。

echo "deb http://apt.postgresql.org/pub/repos/apt/`lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

cat创建的文件以检查其内容:

$cat /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/buster-pgdg main

第3步:在Debian 10上安装PostgreSQL 13 | Debian 9.

现在,存储库已成功更新包列表并在Debian 10/Debian 9 Linux机器上安装PostgreSQL 13.
服务器可以在云中运行,在前提硬件或者任何其他有效的虚拟化环境中。

sudo apt update

并最后启动Debian 10 |在Debian 10上的PostgreSQL 13的安装Debian 9:

sudo apt -y install postgresql-13 postgresql-client-13

使用以下命令启动数据库服务器:

sudo pg_ctlcluster 13 main start

确认服务状态和正在使用的配置文件。

$sudo pg_ctlcluster 13 main status
pg_ctl: server is running (PID: 4209)
/usr/lib/postgresql/13/bin/postgres "-D" "/var/lib/postgresql/13/main" "-c" "config_file=/etc/postgresql/13/main/postgresql.conf"

我们还可以使用systemctl命令检查服务的状态。

$systemctl status Hyman@theitroad
● Hyman@theitroad - PostgreSQL Cluster 13-main
   Loaded: loaded (/lib/systemd/system/Hyman@theitroad; enabled-runtime; vendor preset: enabled)
   Active: active (running) since Fri 2017-10-30 11:27:01 CET; 2min 11s ago
 Main PID: 4209 (postgres)
    Tasks: 7 (limit: 4580)
   Memory: 18.1M
   CGroup: /system.slice/system-postgresql.slice/Hyman@theitroad
           ├─4209 /usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main -c config_file=/etc/postgresql/13/main/postgresql.conf
           ├─4211 postgres: 13/main: checkpointer
           ├─4212 postgres: 13/main: background writer
           ├─4213 postgres: 13/main: walwriter
           ├─4214 postgres: 13/main: autovacuum launcher
           ├─4215 postgres: 13/main: stats collector
           └─4216 postgres: 13/main: logical replication launcher
Oct 30 11:26:59 debian systemd[1]: Starting PostgreSQL Cluster 13-main...
Oct 30 11:27:01 debian systemd[1]: Started PostgreSQL Cluster 13-main.

使用命令启动PostgreSQL提示符:

$sudo su - postgres
Hyman@theitroad:~$psql
psql (13.0 (Debian 13.0-1.pgdg100+1))
Type "help" for help.
postgres=#

执行测试操作:

postgres=# exit
Hyman@theitroad:~$createuser c4geeks
Hyman@theitroad:~$createdb testdb -O c4geeks
Hyman@theitroad:~$psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 testdb    | c4geeks  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

连接到数据库:

Hyman@theitroad:~$psql testdb
psql (13.0 (Debian 13.0-1.pgdg100+1))
Type "help" for help.
testdb=#

设置用户密码:

testdb=#  alter user c4geeks with password 'StrongDBPassw0rd';
ALTER ROLE

删除数据库:

testdb=# \q
Hyman@theitroad:~$dropdb testdb