介绍

PostgreSQL或Postgres是一个关系数据库管理系统,提供SQL查询语言的实现。它符合标准,具有许多高级功能,如可靠的事务和无读锁的并发性。

本指南演示了如何在Ubuntu 20.04服务器上快速启动和运行Postgres,从安装PostgreSQL到设置新用户和数据库。如果你更喜欢关于安装和管理PostgreSQL数据库的更深入的教程,请参阅如何在Ubuntu 20.04上安装和使用PostgreSQL。

使用DigitalOcean托管数据库简化PostgreSQL数据库的创建。几分钟内创建一个Postgres数据库,让DigitalOcean处理数据迁移、升级、维护和安全。

先决条件

要遵循本教程,您将需要一台Ubuntu 20.04服务器,该服务器已按照我们的Ubuntu 20.04初始服务器设置指南进行配置。完成本必备教程后,您的服务器应具有具有sudo权限的非root用户和基本防火墙。

步骤1——安装PostgreSQL

要安装PostgreSQL,首先刷新服务器的本地包索引:

  • sudo apt update

然后,安装Postgres包以及一个-concontib包,该包添加了一些额外的实用程序和功能:

  • sudo apt install postgresql postgresql-contrib

确保服务已启动:

  • sudo systemctl start postgresql.service

步骤2——使用PostgreSQL角色和数据库

默认情况下,Postgres使用一个名为“角色”的概念来处理身份验证和授权。在某些方面,这些用户和组类似于普通Unix风格的用户和组。

安装后,Postgres被设置为使用ident身份验证,这意味着它将Postgres角色与匹配的Unix/Linux系统帐户相关联。如果Postgres中存在角色,则具有相同名称的Unix/Linux用户名可以作为该角色登录。

安装过程创建了一个名为postgres的用户帐户,该帐户与默认的postgres角色相关联。有几种方法可以利用这个帐户访问Postgres。一种方法是通过运行以下命令切换到服务器上的postgres帐户:  

sudo -i -u postgres

然后,您可以通过运行以下命令访问Postgres提示符:

psql

这将使您登录到PostgreSQL提示符,从这里您可以立即自由地与数据库管理系统交互。

要退出PostgreSQL提示,请运行以下操作:

\q

这将使您返回到postgres Linux命令提示符。要返回到常规系统用户,请运行exit命令:

exit

连接到Postgres提示符的另一种方法是直接使用sudo作为Postgres帐户运行psql命令:

  1. sudo -u postgres psql

这将使您直接登录到Postgres,而不需要中间的bash-shell。

同样,您可以通过运行以下程序退出交互式Postgres会话:

  • \q

第3步——创建新角色

如果您是以postgres帐户登录的,则可以通过运行以下命令创建新角色:

  • createuser --interactive

相反,如果您更喜欢在不从普通帐户切换的情况下对每个命令使用sudo,请运行:

  • sudo -u postgres createuser --interactive

无论哪种方式,脚本都会提示您做出一些选择,并根据您的响应,执行正确的Postgres命令,根据您的规范创建用户。

Output

Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

步骤4——创建新数据库

Postgres身份验证系统默认情况下做出的另一个假设是,对于用于登录的任何角色,该角色都将拥有一个可以访问的同名数据库。

这意味着,如果您在上一节中创建的用户名为sammy,则该角色将尝试连接到默认情况下也称为“sammy”的数据库。您可以使用createdb命令创建适当的数据库。

如果您是以postgres帐户登录的,您需要键入以下内容:

  • createdb sammy

相反,如果您更喜欢在不从正常帐户切换的情况下对每个命令使用sudo,则可以运行:

  • sudo -u postgres createdb sammy

步骤5——打开具有新角色的Postgres提示

要使用基于ident的身份验证登录,您需要一个与您的Postgres角色和数据库同名的Linux用户。

如果没有匹配的Linux用户,可以使用adduser命令创建一个。您必须从具有sudo权限的非root帐户(即不以postgres用户身份登录)执行此操作:

  • sudo adduser sammy

一旦此新帐户可用,您可以通过运行以下操作切换并连接到数据库:

  • sudo -i -u sammy
  • psql

或者,您可以内联执行此操作:

  • sudo -u sammy psql

假设所有组件都已正确配置,此命令将自动登录。

如果希望用户连接到其他数据库,可以通过如下方式指定数据库来实现:

  • psql -d postgres

登录后,您可以通过运行以下程序来检查当前连接信息:

  • \conninfo
Output

You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

结论

现在,您已经在Ubuntu 20.04服务器上安装了PostgreSQL。如果您想了解更多关于Postgres的信息以及如何使用它,我们鼓励您查看以下指南:

  • 关系数据库管理系统的比较
  • 练习使用SQL运行查询

欢迎收藏【架构师酒馆】和【开发者开聊