介绍
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命令:
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运行查询