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

在本文中,我们将解释如何在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服务

检查PostgreSQL服务

如何使用PostgreSQL角色和数据库

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

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

$ sudo vim /etc/postgresql/10/main/pg_hba.conf
PostgreSQL配置文件

PostgreSQL配置文件

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

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

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

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

在PostgreSQL中配置角色

在PostgreSQL中配置角色

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

如何在Ubuntu上使用PostgreSQL

完成所有设置后,您可以使用以下命令访问postgres系统帐户,其中-i标志告诉sudo将目标用户的密码数据库条目指定的shell作为登录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 howtoing;

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

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

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

postgres=#CREATE ROLE howtoing PASSWORD 'passwd_here'

列出现有的PostgreSQL数据库角色

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

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;
列出PostgreSQL角色

列出PostgreSQL角色

删除PostgreSQL数据库角色

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

postgres=# DROP ROLE howtoing;

创建PostgreSQL数据库

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

postgres=# CREATE DATABASE howtoing;

现在要管理数据库howtoing ,访问postgres shell作为howtoing角色,提供如下密码。

$ sudo -i -u howtoing psql

创建PostgreSQL表

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

howtoing=>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)
);
创建PostgreSQL表

创建PostgreSQL表

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

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

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

howtoing=> SELECT * FROM authors;
在PostgreSQL表中插入数据

在PostgreSQL表中插入数据

列出PostgreSQL数据库表

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

howtoing=>\dt
列出PostgreSQL数据库表

列出PostgreSQL数据库表

删除/删除PostgreSQL表

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

howtoing=> DROP TABLE authors;

列出所有PostgreSQL数据库

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

howtoing=>SELECT datname FROM pg_database;
OR
howtoing=>\list	#shows a detailed description 
OR
howtoing=>\l
列出PostgreSQL数据库

列出PostgreSQL数据库

删除/删除PostgreSQL数据库

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

howtoing=>DROP DATABASE howtoing;

切换到另一个PostgreSQL数据库

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

howtoing=>\connect database_name

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

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