如何在 Ubuntu 20.04 上安装 PostgreSQL

PostgreSQL 或 Postgres 是一个开源通用对象关系数据库管理系统,具有许多高级功能,允许您构建容错环境或复杂应用程序。

在本教程中,我们将介绍如何在 Ubuntu 20.04安装 PostgreSQL 数据库服务器,并探讨 PostgreSQL 数据库管理的基本知识。

先决条件

为了能够安装包,您需要以 root 或用户状态登录,并具有sudo 权限。

在 Ubuntu 上安装 PostgreSQL

在撰写本文时,从官方 Ubuntu 存储库提供的最新版本的 PostgreSQL 是 PostgreSQL 版本 10.4。

运行以下命令在 Ubuntu 上安装 PostgreSQL 服务器:

sudo apt update
sudo apt install postgresql postgresql-contrib

我们还安装了 PostgreSQL 属性包,该包为 PostgreSQL 数据库系统提供了几个附加功能。

安装完成后,PostgreSQL 服务将自动启动。使用该工具通过连接到 PostgreSQL 数据库服务器并打印其版本来验证安装:psql

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit

就是这样。PostgreSQL 已安装完毕,您可以开始使用它。

PostgreSQL 角色和身份验证方法

PostgreSQL 中的数据库访问权限使用角色的概念进行处理。角色可以表示数据库用户或一组数据库用户。

PostgreSQL 支持多种身份验证方法。最常用的方法是:

  • 信任 – 只要满足 中定义的条件,角色就可以在没有密码的情况下进行连接。pg_hba.conf
  • 密码 – 角色可以通过提供密码进行连接。密码可以存储为 和 (明文)。scram-sha-256md5password
  • 标识 – 仅支持 TCP/IP 连接。它通过获取客户端的操作系统用户名,以及可选的用户名映射来工作。
  • 对等体 – 与标识相同,但仅在本地连接上支持它。

PostgreSQL 客户端身份验证在名为 的配置文件中定义。默认情况下,PostgreSQL 使用对等身份验证方法进行本地连接。pg_hba.conf

安装 PostgreSQL 时,将自动创建用户。此用户是 PostgreSQL 实例的超级用户,它等效于 MySQL 根用户。postgres

若要以用户状态登录到 PostgreSQL 服务器,请先切换到用户,然后使用实用程序访问 PostgreSQL 提示:postgrespsql

sudo su - postgres
psql

从这里,您可以与您的 PostgreSQL 实例进行交互。要退出 PostgreSQL 外壳类型:

\q

在不切换用户的情况下访问 PostgreSQL 提示符的另一种方法是使用sudo命令:

sudo -u postgres psql

通常,应仅从本地主机登录到数据库服务器。postgres

创建 PostgreSQL 角色和数据库

 

只有具有特权的超级用户和角色才能创建新角色。CREATEROLE

下面的示例演示如何创建名为名为数据库的新角色,并授予数据库的权限:johnjohndb

  1. 创建新的 PostgreSQL 角色:sudo su – postgres -c “createuser john”
  2. 创建新的 PostgreSQL 数据库:sudo su – postgres -c “createdb johndb”

若要向数据库上的用户授予权限,请连接到 PostgreSQL 外壳:

sudo -u postgres psql

并运行以下查询:

grant all privileges on database johndb to john;

启用对 PostgreSQL 服务器的远程访问

默认情况下,PostgreSQL 服务器仅在本地接口 () 上侦听。127.0.0.1

若要启用对 PostgreSQL 服务器的远程访问,请打开配置文件并添加到该部分。postgresql.conflisten_addresses = ‘*’CONNECTIONS AND AUTHENTICATION

sudo nano /etc/postgresql/12/main/postgresql.conf

/etc/postgresql/12/主/后格雷斯克尔.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

保存文件并重新启动 PostgreSQL 服务:

sudo service postgresql restart

使用实用程序验证更改:ss

ss -nlt | grep 5432

输出显示 PostgreSQL 服务器正在侦听所有接口 ():0.0.0.0

LISTEN  0        244              0.0.0.0:5432           0.0.0.0:*              
LISTEN  0        244                 [::]:5432              [::]:* 

下一步是通过编辑文件将服务器配置为接受远程连接。pg_hba.conf

下面是一些显示不同用例的示例:

/etc/postgresql/12/主/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb from all locations using md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

最后一步是打开防火墙中的端口。5432

假设您使用UFW来管理防火墙,并且希望允许从子网进行访问,则运行以下命令:192.168.1.0/24

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

确保防火墙配置为仅接受来自受信任 IP 范围的连接。

 

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun35809.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2021年2月4日
下一篇 2021年2月4日

相关推荐