文章目录
- 创建新角色(基本使用不管这个)
- 创建一个新数据库
- 实践案例
- 如何卸载?
- 停止
- 参考
- 互相交流
0 安装
使用
默认情况下,Postgres 使用一个称为“角色”的概念来处理身份验证和授权。这些在某些方面类似于常规的 Unix 风格的帐户,但 Postgres 不区分用户和组,而是更喜欢更灵活的术语“角色”。
安装后,Postgres 设置为使用peer authentication,这意味着它将 Postgres 角色与匹配的 Unix/Linux 系统帐户相关联。如果 Postgres 中存在角色,则具有相同名称的 Unix/Linux 用户名可以作为该角色登录。
安装过程创建了一个名为postgres
的用户帐户,该帐户与默认 Postgres 角色相关联。为了使用 Postgres,您可以登录该帐户。
有几种方法可以利用此帐户访问 Postgres。
第一种方式
切换到 postgres 帐户
通过键入以下内容切换到服务器上的postgres帐户:
sudo -i -u postgres
您现在可以通过键入以下内容立即访问 PostgreSQL 提示:
psql
这样就可以切换到数据库的账户,来操作想要的数据了。
第二种方式
在不切换帐户的情况下访问 Postgres 提示,您也可以直接使用postgres帐户运行您想要的命令sudo。
例如,在最后一个示例中,系统指示您首先切换到postgres用户,然后运行psql以打开 Postgres 提示符,从而进入 Postgres 提示符。您可以通过以postgres用户psql身份运行单个命令来一步完成此操作,如下所示,也就是说,直接制定我这个psql的命令是postgres
这个用户做的,然后进入交互的终端:
sudo -u postgres psql
这将使您直接登录 Postgres,而无需中间的bashshell。
同样,您可以通过键入以下内容退出交互式 Postgres 会话:
\q
许多用例需要多个 Postgres 角色。继续阅读以了解如何配置这些。
创建新角色(基本使用不管这个)
目前,您只需在数据库中配置postgres角色。您可以使用命令从命令行创建新角色createrole。该–interactive标志将提示您输入新角色的名称,并询问它是否应该具有超级用户权限。
如果您以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
您可以通过传递一些额外的标志来获得更多控制权。通过查看man页面查看选项:
man createuser
您安装的 Postgres 现在有一个新用户,但您还没有添加任何数据库。下一节将介绍此过程。
创建一个新数据库
Postgres 身份验证系统默认做出的另一个假设是,对于用于登录的任何角色,该角色将拥有一个可以访问的同名数据库。
这意味着如果您在上一节中创建的用户名为sammy,该角色将尝试连接到默认情况下也称为“sammy”的数据库。createdb您可以使用该命令创建适当的数据库。
如果您以postgres帐户登录,您将键入如下内容:
createdb sammy
相反,如果您希望在sudo不从普通帐户切换的情况下使用每个命令,您可以键入:
sudo -u postgres createdb sammy
这种灵活性为根据需要创建数据库提供了多种途径。
第 5 步 — 使用新角色打开 Postgres 提示
要使用对等身份验证登录,您需要一个与您的 Postgres 角色和数据库同名的 Linux 用户。
如果您没有可用的匹配 Linux 用户,您可以使用该adduser命令创建一个。您必须从具有特权的非root帐户执行此操作(意思是,未以postgres用户身份登录):sudo
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”.
如果您连接到非默认数据库或使用非默认用户,这很有用。
实践案例
我有一个sql文件,有创建数据库的所有语句,叫imdb.dump.bz2
如何卸载?
使用apt安装的,卸载之前:
使用命令
卸载。
之后看起来应该是:
之后再探索
停止
发现在自己的ubuntu上设置postgresql还需要切换用户等问题。应该有其他的解决方式能够和3311老师设置的一样。之后问问。
另外,腾讯云确实不错。快照功能也可以。可以创建两个快照,那么就可以保存配置好的最近两次环境!
参考
翻译自:
安装教程
互相交流
读者你好!如果你对本文内容感兴趣,我十分希望能够和你互相学习,可以扫码和我联系!一起进步