技术知识库

帮助中心 >  产品文档 >  数据库 >  Ubuntu 18.04上安装和使用PostgreSQL

安装PostgreSQL

Ubuntu的默认存储库包含Postgres包,因此您可以使用apt包装系统来安装这些包。


由于这是您第一次在此会话中使用apt ,请刷新本地包索引。 然后,安装Postgres软件包以及一个-contrib软件包,该软件包添加了一些额外的实用程序和功能:


sudo apt update

sudo apt install postgresql postgresql-contrib

现在安装了该软件,我们可以了解它的工作原理以及它可能与您可能使用的类似数据库管理系统的不同之处。


使用PostgreSQL角色和数据库

默认情况下,Postgres使用称为“角色”的概念来处理身份验证和授权。 这些在某些方面类似于普通的Unix风格的账户,但是Postgres并没有区分用户和组,而是倾向于更灵活的术语“角色”。


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


安装过程创建了一个名为postgres的用户帐户,它与默认的Postgres角色相关联。 为了使用Postgres,您可以登录到该帐户。


有几种方式可以使用此帐户访问Postgres。


切换到postgres帐户

输入以下内容切换到服务器上的postgres帐户:


sudo -i -u postgres

您现在可以通过键入以下命令立即访问Postgres提示符:


psql

这会将您登录到PostgreSQL提示符中,从这里您可以立即与数据库管理系统进行交互。


输入以下命令退出PostgreSQL提示符:


\q

这将使您回到postgres Linux命令提示符。


在不切换帐户的情况下访问Postgres提示

你也可以使用sudo直接运行你想要的postgres账户sudo 。


例如,在最后一个示例中,您被指示通过首先切换到postgres用户,然后运行psql打开Postgres提示符来访问Postgres提示符。 你可以通过使用sudo运行单个命令psql作为postgres用户来完成这一步,如下所示:


sudo -u postgres psql

这会将你直接登录到Postgres,而不需要中间的bash shell。


同样,您可以键入以下命令退出交互式Postgres会话:


\q

许多用例需要多个Postgres角色。 继续阅读以了解如何配置这些。


创建一个新的角色

目前,您只需在数据库中配置postgres角色。 您可以使用createrole命令从命令行创建新角色。 --interactive标志会提示您输入新角色的名称,并询问它是否应具有超级用户权限。


如果您以postgres帐户登录,则可以通过键入以下内容创建新用户:


createuser --interactive

相反,如果您宁愿为每个命令使用sudo而无需从普通帐户中切换,请键入:


sudo -u postgres createuser --interactive

该脚本会提示您一些选择,并根据您的响应执行正确的Postgres命令以根据您的规范创建用户。


Enter name of role to add: sammy

Shall the new role be a superuser? (y/n) y

通过传递一些额外的标志可以获得更多控制权。 通过查看man页查看选项:


man createuser

你现在安装的Postgres有一个新用户,但你还没有添加任何数据库。 下一节将介绍这一过程。


创建一个新的数据库

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


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


如果您以postgres帐户登录,则可以键入如下所示的内容:


createdb sammy

相反,如果您宁愿为每个命令使用sudo而无需切换普通帐户,则可以键入:


sudo -u postgres createdb sammy

这种灵活性可根据需要为创建数据库提供多种路径


以新的角色打开Postgres提示

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


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


sudo adduser sammy

一旦这个新帐户可用,您可以通过键入以下命令切换并连接到数据库:


sudo -i -u sammy

psql

或者,你可以这样做内联:


sudo -u sammy psql

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


如果你想让你的用户连接到不同的数据库,你可以通过像这样指定数据库来实现:


psql -d postgres

登录后,您可以输入以下内容来检查当前的连接信息:


\conninfo

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

如果您连接到非默认数据库或非默认用户,这很有用。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: