PostgreSQL或 Postgres 是一种关系数据库管理系统,它提供SQL查询语言的实现。它符合标准并具有许多高级功能,例如可靠的事务处理和没有读锁的并发性。
本指南演示了如何在 Ubuntu 20.04 服务器上快速启动和运行 Postgres,从安装 PostgreSQL 到设置新用户和数据库。
第 1 步 — 安装 PostgreSQL
要安装 PostgreSQL,首先刷新服务器的本地包索引:
sudo apt update
然后,安装 Postgres 包以及一个-contrib添加了一些额外实用程序和功能的包:
sudo apt install postgresql postgresql-contrib
确保服务已启动:
sudo systemctl start postgresql.service
第 2 步 — 使用 PostgreSQL 角色和数据库
默认情况下,Postgres 使用称为“角色”的概念来处理身份验证和授权。在某些方面,这些类似于常规的 Unix 风格的用户和组。
安装后,Postgres 设置为使用身份验证,这意味着它将 Postgres 角色与匹配的 Unix/Linux 系统帐户相关联。如果 Postgres 中存在角色,则具有相同名称的 Unix/Linux 用户名可以作为该角色登录。
安装过程创建了一个名为postgres的用户帐户,该帐户与默认的 Postgres 角色相关联。有几种方法可以利用此帐户访问 Postgres。一种方法是通过运行以下命令切换到服务器上的postgres帐户:
sudo -i -u postgres
然后您可以通过运行以下命令访问 Postgres 提示符:
psql
这将使您登录到 PostgreSQL 提示符,从这里您可以立即自由地与数据库管理系统进行交互。
要退出 PostgreSQL 提示符,请运行以下命令:
\q
这将使您返回到postgres Linux 命令提示符。要返回到您的常规系统用户,请运行以下exit命令:
exit
连接到 Postgres 提示符的另一种方法是直接使用postgrespsql帐户运行命令:sudo
sudo -u postgres psql
这将使您直接登录到 Postgres,而无需中间bashshell。
同样,您可以通过运行以下命令退出交互式 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。您必须从具有权限的非root帐户执行此操作(意思是,不是以postgressudo用户身份登录):
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".
原文链接:
发表评论