网站搜索

如何在 Ubuntu 18.04 上安装和使用 PostgreSQL


PostgreSQL(简称Postgres)是一个开源、强大、先进、高性能、稳定的关系文档数据库系统。它使用并增强了 SQL 语言以及大量用于安全数据存储和管理的功能。

它高效、可靠且可扩展,可处理大量复杂的数据并建立企业级容错环境,同时确保数据的高度完整性。 Postgres 还具有高度可扩展的功能,例如带有 API 的索引,以便您可以开发自己的解决方案来解决数据存储挑战。

在本文中,我们将解释如何在 Ubuntu 18.04 服务器上安装 PostgreSQL(也适用于较旧的 Ubuntu 版本)并学习一些基本的使用方法。

如何在 Ubuntu 上安装 PostgreSQL

首先,创建一个文件 /etc/apt/sources.list.d/pgdg.list 来存储存储库配置,然后将存储库密钥导入到您的系统中,更新系统软件包列表并安装 Postgres 软件包使用以下命令。

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-10 pgadmin4 

一旦安装了postgres,数据库服务就会自动启动,您可以通过键入以下命令进行确认。

sudo systemctl status postgresql.service

如何使用 PostgreSQL 角色和数据库

postgres中,客户端身份验证由/etc/postgresql/10/main/pg_hba.conf配置文件控制。对于数据库管理员来说,默认的身份验证方法是“peer”,这意味着它从操作系统获取客户端的操作系统用户名,并检查它是否与请求的数据库用户名匹配以允许访问,对于本地连接(如下图所示)。

在安装过程中,会创建一个名为postgres的系统用户帐户,没有密码,这也是默认的数据库管理员用户名。

sudo vim /etc/postgresql/10/main/pg_hba.conf

此外,在postgres下,数据库访问权限管理是通过角色进行的。角色可以被视为一个数据库用户或一组数据库用户,具体取决于角色的设置方式。

默认角色也是postgres。重要的是,数据库角色在概念上与操作系统用户完全无关,但实际上它们可能不是分开的(例如,当涉及客户端身份验证时)。

重要的是,角色可以拥有数据库对象,并且可以将这些对象的权限分配给其他角色,以控制谁有权访问哪些对象。此外,还可以将一个角色的成员身份授予另一个角色。

要将其他角色配置为使用加密密码来管理分配给他们的数据库(除了默认的 postgres 角色之外),您需要将该行更改为。

Then restart the postgresql service to apply the recent changes.
sudo systemctl restart postgresql

如何在 Ubuntu 上使用 PostgreSQL

完成所有设置后,您可以使用以下命令访问 postgres 系统帐户,其中 -i 标志告诉 sudo 运行由目标用户的密码数据库条目指定的 shell,如下所示一个登录外壳。

sudo -i -u postgres 
psql		#to launch the postgres shell program  
postgres=#

要直接访问 postgres shell,而不先访问 postgres 用户帐户,请运行以下命令。

sudo -i -u postgres psql

您可以通过键入以下命令来退出/退出 postgres

postgres=# \q

创建 PostgreSQL 数据库角色

使用以下命令创建新的用户角色。

postgres=# CREATE ROLE tecmint;

要创建具有LOGIN属性的角色,请使用以下命令(具有LOGIN属性的角色可以被视为与数据库用户相同)。

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

还可以使用密码创建角色,如果您将客户端身份验证方法配置为要求用户在连接到数据库时提供加密密码,则这非常有用。

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

列出现有 PostgreSQL 数据库角色

要列出现有用户角色,请使用以下任意命令。

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

删除 PostgreSQL 数据库角色

要删除任何现有用户角色,请使用 DROP ROLE 命令,如图所示。

postgres=# DROP ROLE tecmint;

创建 PostgreSQL 数据库

创建具有特定名称的角色(例如 howtoing user)后,您可以创建一个数据库(与角色同名),该数据库将由该角色管理,如图所示。

postgres=# CREATE DATABASE tecmint;

现在要管理数据库 howtoing,请以 howtoing 角色访问 postgres shell,并提供您的密码,如下所示。

sudo -i -u tecmint psql

创建 PostgreSQL 表

创建表非常简单,我们将创建一个名为 authors 的测试表,它存储有关 TecMint.com 作者的信息,如图所示。

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

创建表后,尝试用一些数据填充它,如下所示。

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

要查看表中存储的数据,您可以运行 SELECT 命令。

tecmint=> SELECT * FROM authors;

列出 PostgreSQL 数据库表

您可以使用以下命令列出当前数据库中的所有表。

tecmint=>\dt

删除/删除 PostgreSQL 表

要删除当前数据库中的表,请使用DROP命令。

tecmint=> DROP TABLE authors;

列出所有 PostgreSQL 数据库

要列出所有数据库,请使用以下任一命令。

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

删除/删除 PostgreSQL 数据库

例如,如果要删除数据库,请使用DROP命令。

tecmint=>DROP DATABASE tecmint;

切换到另一个 PostgreSQL 数据库

您还可以使用以下命令轻松地从一个数据库切换到另一个数据库。

tecmint=>\connect database_name

有关更多信息,请参阅 PostgreSQL 10.4 文档。

现在就是这样!在本文中,我们讲解了如何在Ubuntu 18.04上安装和使用PostgreSQL数据库管理系统。您可以在评论中向我们发送您的疑问或想法。