如何在 Ubuntu 20.04 上安装 PostgreSQL
admin
2023-08-03 05:38:14
0

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 范围的连接。

 

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
iPhone 屏幕上有亮绿色斑... iPhone 是市场上最稳定的智能手机之一,这主要归功于专为它们设计的 iOS 操作系统。然而,他们...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
QQ浏览器怎么制作简历 QQ浏览器是腾讯公司开发的一款极速浏览器,支持电脑,安卓,苹果等多种终端;更快的浏览体验,更安全的浏...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
Apple Watch Ult... 所有运行 watchOS 7 或更高版本的 Apple Watch 型号都包含一项名为“优化电池充电...
统信UOS每次开机后不直接进入... 统信UOS每次开机后不直接进入系统而是进入到recovery模式 按方向上键选择UOS 20 SP1...