如何在 Ubuntu 18.04 上安装 PostgreSQL

2023-10-26

PostgreSQL 或 Postgres 是一个开源通用对象关系数据库管理系统。 PostgreSQL 具有许多高级功能,可让您创建复杂的 Web 应用程序。

在本教程中,我们将向您展示如何在 Ubuntu 18.04 上安装 PostgreSQL 并探索基本数据库管理的基础知识。

先决条件#

在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

在 Ubuntu 上安装 PostgreSQL#

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

要在 Ubuntu 服务器上安装 PostgreSQL,请按照以下步骤操作:

  1. 安装 PostgreSQL

    刷新本地包索引并安装 PostgreSQL 服务器以及 PostgreSQL contrib 包,该包为 PostgreSQL 数据库提供了一些附加功能:

    sudo apt updatesudo apt install postgresql postgresql-contrib
  2. 验证 PostgreSQL 安装

    安装完成后,PostgreSQL服务将自动启动。

    为了验证安装,我们将尝试使用以下命令连接到 PostgreSQL 数据库服务器psql并打印服务器版本 :

    sudo -u postgres psql -c "SELECT version();"
psql 是一个交互式命令行实用程序,允许您与 PostgreSQL 服务器交互。

PostgreSQL 角色和身份验证方法#

PostgreSQL 中的数据库访问权限是通过角色的概念来处理的。角色可以代表一个数据库用户或一组数据库用户。

PostgreSQL 支持多种认证方式。最常用的是:

  • 信任 - 使用此方法,角色可以在没有密码的情况下进行连接,只要符合中定义的条件即可pg_hba.conf都满足了。
  • 密码 - 角色可以通过提供密码进行连接。密码可以存储为scram-sha-256 md5 and password(明文)
  • Ident - 此方法仅在 TCP/IP 连接上受支持。通过获取客户端的操作系统用户名以及可选的用户名映射来工作。
  • 对等 - 与 Ident 相同,但仅在本地连接上受支持。

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

The postgres用户是在安装 PostgreSQL 时自动创建的。该用户是PostgreSQL实例的超级用户,相当于MySQL root用户。

要首先以 postgres 用户身份登录 PostgreSQL 服务器,您需要切换到用户postgres 然后您可以使用以下命令访问 PostgreSQL 提示符psql公用事业:

sudo su - postgrespsql

从这里,您可以与 PostgreSQL 实例交互。要退出 PostgreSQL shell,请输入:

\q

您还可以使用以下命令访问 PostgreSQL 提示符而无需切换用户sudo命令:

sudo -u postgres psql

The postgres用户通常仅从本地主机使用,建议不要为此用户设置密码。

创建 PostgreSQL 角色和数据库#

您可以使用以下命令从命令行创建新角色createuser命令。仅具有以下权限的超级用户和角色CREATEROLE特权可以创建新角色。

在以下示例中,我们将创建一个名为的新角色john一个名为johndb并授予数据库权限。

  1. 创建新的 PostgreSQL 角色

    以下命令将创建一个名为“john”的新角色:

    sudo su - postgres -c "createuser john"
  2. 创建新的 PostgreSQL 数据库

    使用以下命令创建一个名为“johndb”的新数据库createdb命令:

    sudo su - postgres -c "createdb johndb"
  3. 授予权限

    授予权限john我们在上一步中创建的数据库上的用户连接到 PostgreSQL shell:

    sudo -u postgres psql

    并运行以下查询:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

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

默认情况下,PostgreSQL服务器仅监听本地接口127.0.0.1。要启用对 PostgreSQL 服务器的远程访问,请打开配置文件postgresql.conf并添加listen_addresses = '*' in the CONNECTIONS AND AUTHENTICATION部分。

sudo vim /etc/postgresql/10/main/postgresql.conf
/etc/postgresql/10/main/postgresql.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
LISTEN   0         128                 0.0.0.0:5432             0.0.0.0:*
LISTEN   0         128                    [::]:5432                [::]:*

从上面的输出可以看到 PostgreSQL 服务器是倾听在所有接口 (0.0.0.0) 上。

最后一步是通过编辑配置服务器以接受远程连接pg_hba.conf file.

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

/etc/postgresql/10/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

结论#

您已经学习了如何在 Ubuntu 18.04 服务器上安装和配置 PostgreSQL。

咨询PostgreSQL 10.4 文档有关此主题的更多信息。

如果您有任何疑问,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上安装 PostgreSQL 的相关文章

随机推荐

  • 如何禁用 Apache 中的目录列表

    Apache 是最流行的开源 Web 服务器之一 全球许多网站都在使用它 它的功能之一是能够在不存在索引文件时列出目录及其内容 此功能虽然对某些用途很方便 但可能会向公众公开有关网站结构或内容的敏感信息 在本文中 我们将引导您了解如何禁用
  • 如何在 Ubuntu 16.04 和 14.04 LTS 上安装 phpPgAdmin

    phpPg管理员是一个 Web 界面 用于以非常简单的方式访问和管理 PostgreSQL 数据库 我们可以轻松地创建新的数据库 数据库中的表 用户 存储过程等 此外 我们还可以执行PL pgSQL和其他存储过程 它还提供了从 Web 界面
  • ERROR 1114 (HY000): 表‘tablename’已满(解决方案)

    MySQL 是一种广泛使用的开源关系数据库管理系统 RDBMS 可实现高效的数据存储和检索 但是 用户偶尔可能会遇到错误 例如 ERROR 1114 HY000 The table table name is full 消息 当达到表的存储
  • 什么是Fish(友好交互式SHell)?

    鱼 或者 友好的交互式SHell 是一个 Unix shell 其设计重点是用户友好性和交互使用 它于 2005 年推出 由于其独特的功能 有用的默认设置以及对愉快的用户体验的关注 赢得了众多追随者 鱼的主要特征和特点 交互式自动完成 Fi
  • Unix/Linux 中什么是僵尸进程

    僵尸进程是指已完成执行但其父进程尚未终止并释放其资源的进程 在 Unix Linux 中 处于这种状态的进程被视为僵尸进程 这些进程会占用宝贵的系统资源 如果处理不当 可能会导致稳定性问题 以下是了解和处理 Unix Linux 中僵尸进程
  • 您绝对需要的 7 件在家办公必需品

    甚至在 COVID 19 大流行爆发之前 很多人就在家工作 然而 他们中的大多数人并不是全职在家工作 这就是为什么这种强制性的远程办公可能异常难以适应 虽然业务模式或工作实践的每次变化都需要一些时间来适应 但您需要记住 有很多方法可以稍微促
  • 在 Laravel 中设置文件权限的正确方法:详细教程

    Laravel 是一种流行的 Web 应用程序开发 PHP 框架 非常注重安全性 在 Laravel 的众多安全考虑因素中 正确设置文件权限至关重要 如果没有正确的权限 您的应用程序可能容易受到攻击 或者可能由于缺乏必要的访问权限而发生故障
  • 如何保护 Apache 中的特定 URL

    阻止用户访问特定网页有助于防止他们接触敏感信息 如果您将站点托管在 Apache 服务器上 则可以通过锁定特定 URL 来锁定站点 如果您只需要阻止访问单个页面 则可以锁定 URL 而无需锁定整个站点 使用 Apache 有多种方法可以做到
  • Bash 读取命令

    Bash 附带了许多内置命令 您可以在命令行或 shell 脚本中使用这些命令 在本文中 我们将探讨内置read命令 Bash read内置 read是一个 bash 内置命令 它从标准输入 或文件描述符 读取一行并将该行拆分为单词 第一个
  • 如何在 CentOS 8 上安装 Visual Studio Code

    视觉工作室代码是微软开发的开源 跨平台代码编辑器 它具有内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 本文介绍如何在 CentOS 8 上安装 Visual Studio Code 先决条件 这些说明假
  • 如何在 CentOS 8 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • 如何在 Debian 9 上安装和配置 Redis

    Redis 是一个开源内存键值数据存储 它可以用作数据库 缓存和消息代理 并支持各种数据结构 如字符串 哈希 列表 集合等 Redis 通过 Redis Sentinel 提供高可用性 包括监控 通知 自动故障转移 它还通过 Redis C
  • Python 列表排序

    对数据进行排序是使用 Python 时最常见的任务之一 例如 您可能希望按姓名对团队成员列表进行排序 或按优先级对项目列表进行排序 本文介绍了如何排序Python 中的列表 Python sort and sorted 在 Python 中
  • 如何在 Debian 9 上安装 TensorFlow

    TensorFlow是由 Google 构建的免费开源机器学习平台 许多组织都在使用它 包括 Twitter PayPal 英特尔 联想和空中客车公司 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker
  • ​如何从 Ubuntu 16.04 升级到 18.04

    最新的 Ubuntu LTS 版本 Ubuntu 18 04 Bionic Beaver 于 2018 年 4 月 26 日发布 支持期为 5 年 直至 2023 年 4 月 在本教程中 我们将向您展示如何升级 Ubuntu 16 04 安
  • Netcat (nc) 命令及示例

    网络猫 或nc 是一个命令行实用程序 它使用 TCP 或 UDP 协议跨网络连接读取和写入数据 它是网络和系统管理员武器库中最强大的工具之一 被视为网络工具中的瑞士军刀 Netcat 是跨平台的 可用于 Linux macOS Window
  • 在 Ubuntu 20.04 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 创建的证书颁发机构 它通过完全自动化的流程提供免费的 SSL 证书 旨在消除手动证书创建 验证 安装和续订 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并
  • 如何在 CentOS 8 上安装 VirtualBox

    虚拟盒子是一个开源 跨平台的虚拟化平台 它支持多种来宾操作系统 包括 Linux 和 Windows 并允许您同时运行多个虚拟机 在本教程中 我们将解释如何在 CentOS 8 上安装 VirtualBox 在 CentOS 8 上安装 V
  • 在 CentOS 7 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 开发的免费 自动化 开放的证书颁发机构 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并且受到当今所有主要浏览器的信任 在本教程中 我们将介绍在运行 Apa
  • 如何在 Ubuntu 18.04 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一个开源通用对象关系数据库管理系统 PostgreSQL 具有许多高级功能 可让您创建复杂的 Web 应用程序 在本教程中 我们将向您展示如何在 Ubuntu 18 04 上安装 Postgre