如何在Debian 10(Buster)上安装PostgreSQL 11

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

本教程将引导我们完成在Debian 10(Buster)上安装PostgreSQL 11所需的步骤。 PostgreSQL是用C语言编写的功能强大,高度可扩展的数据库服务器。它是世界上最先进的关系数据库系统,拥有30多年的积极开发经验,在可靠性,功能强大性和性能方面赢得了极高的声誉。

PostgreSQL 11的第一版发布于2016-10-18,我们可以在发布页面上查看更多详细信息。请按照以下几个步骤在Debian 10(Buster)上安装PostgreSQL 11.

添加PostgreSQL存储库

首先,请确保Debian 10系统上的所有内容均已更新。

sudo apt update
sudo apt -y upgrade

然后导入存储库签名密钥:

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

添加存储库:

RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list

在Debian 10(Buster)上安装PostgreSQL 11

现在,通过运行以下命令在Debian 10 Buster上安装PostgreSQL 11.

sudo apt update
sudo apt -y install postgresql-11

该服务通常在安装后启动。

$systemctl status postgresql
 ● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    Active: active (exited) since Fri 2019-03-29 13:15:54 UTC; 3min 37s ago
  Main PID: 1360 (code=exited, status=0/SUCCESS)
     Tasks: 0 (limit: 1148)
    Memory: 0B
    CGroup: /system.slice/postgresql.service

我们需要设置PostgreSQL管理员用户密码:

$sudo su - postgres 
theitroad@localhost:~$psql -c "alter user postgres with password 'StrongDBPassword'" 
ALTER ROLE

启用远程访问(可选)

默认情况下,仅从本地主机访问PostgreSQL数据库服务器。

$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 <->

如果要更改监听地址,请编辑PostgreSQL 11配置文件:

sudo vim /etc/postgresql/11/main/postgresql.conf

在"连接和认证"部分下添加以下行。

listen_addresses = '*' # Don't do this if your server is on public network

我们还可以指定服务器IP地址

listen_addresses = '10.10.0.2' # Recommended for LAN connections to DB Server

进行更改后重新启动postgresql

sudo systemctl restart postgresql

确认

$ss -tunelp | grep 5432
tcp     LISTEN   0        128              0.0.0.0:5432          0.0.0.0:*       uid:108 ino:74999 sk:a <->                                                     
tcp     LISTEN   0        128                 [::]:5432             [::]:*       uid:108 ino:75000 sk:b v6only:1 <->

如果我们有活动的UFW防火墙,请允许端口5432用于网络连接。

sudo ufw allow 5432/tcp

测试PostgreSQL安装

添加测试数据库用户:

$sudo su - postgres
theitroad@localhost:~$createuser test_user1

添加测试数据库并将所有权授予test_user1

theitroad@localhost:~$createdb test_db -O test_user1

设置用户密码:

theitroad@localhost:~$psql 
psql (11.2 (Debian 11.2-2))
Type "help" for help.
postgres=# alter user test_user1 with password 'DBUserPassword';
ALTER ROLE

登录到test_db数据库:

theitroad@localhost:~$psql -l  | grep test_db
test_db   | test_user1 | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

theitroad@localhost:~$psql test_db
psql (11.2 (Debian 11.2-2))
Type "help" for help.
test_db=#

创建一个表并添加一些虚拟数据:

test_db=# create table test_table ( id int,first_name text, last_name text ); 
CREATE TABLE
test_db=# insert into test_table (id,first_name,last_name) values (1,'John','Doe'); 
INSERT 0 1

显示表格数据:

test_db=# select * from test_table;
  id | first_name | last_name 
 ----+------------+----------
   1 | John       | Doe
 (1 row)
 test_db=#

让我们删除测试数据库以保留全新安装。

theitroad@localhost:~$dropdb test_db

我们已经在Debian 10(Buster)上成功安装了PostgreSQL 11. 访问PostgreSQL官方文档页面以进一步阅读。