PostgreSQL教程(十七):客户端命令(1)

PostgreSQL教程(十七):客户端命令(1)
密码文档

在给其他PostgreSQL客户端的命令,我们需要介绍PostgreSQL第一密码文件。为什么我们解释这个文件是提前,我们将使用下面的代码示例文件以确保我们的脚本可以自动完成的。换句话说,如果文件没有提供当客户端命令执行时,所有的PostgreSQL客户端命令将密码输入提示中断。

当前用户的家目录下,我们需要创建指定文件的密码文件。pgpass手动,所以当我们连接服务器,自动客户端命令读取文件获得了登录时的密码信息。该文件的格式如下:

复制代码代码如下所示:

主机名:端口:数据库用户名:密码:
上面的数据被用作分隔符,分为五个字段,分别表示服务器主机名(IP)、服务器侦听端口号、登录访问数据库名称、用户名和密码登录,第一个四字段可以使用星号(*)来匹配任何值:

复制代码代码如下所示:

pgpass猫/ > >。

*::::123456 Postgres Postgres 5432

按Ctrl + D

#的权限。pgpass文件必须0600防止任何全球或一组用户访问,否则文件将被忽略。

chmod / > 0600。pgpass
在我们学习后面的客户端命令之前,我们需要根据我们的应用程序环境手动创建这个文件,以便下面的所有示例代码都使用这个密码文件,以便它们可以分批自动处理

1。CREATEDB:

创建一个新的PostgreSQL数据库,使用如下命令:

复制代码代码如下所示:

createdb {选项} { } {…}在描述
1。命令行选项列表:
选项
解释
d(表空间=表空间)
指定数据库的默认表空间。
- e(-回声)
检索由createdb生成的命令并将其发送到服务器。
- e(-编码=编码)
指定此数据库的字符编码方法
l(区域设置=区域设置)
指定此数据库的区域设置。
o(-所有者=所有者)
指定的新数据库的所有者,如果未指定此选项,则该值为当前登录的用户。
- t(-模板=模板)
指定用于创建此数据库的模板数据库。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的侦听器端口默认为5432。
–(用户名=用户名)
操作的登录用户名,如果未指定o选项,则数据库的所有者将是登录用户。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

# 1。在Postgres的记录。(参照上述密码文件的详细内容)

psql / >

# 2。创建表空间。

Postgres = #创建表空间my_tablespace位置 / / /选择PostgreSQL 9.1 /该;

创建表空间

# 3。为新数据库创建所有者。

Postgres = #创建角色权限的登录密码为123456;

创建角色

Postgres = # Q

# 4。创建一个新数据库。此连接的登录用户postgres。新数据库的所有者的权限,表my_tablespace,和新的数据库名称的名称。

createdb -U postgres O中D / my_tablespace - E的名称

创建数据库的名称中my_tablespace业主表;

# 5。再次登录以查看数据库是否已成功创建,以及表空间是否与查询系统表的所有者一致。

psql / >

Postgres = #选择datname,rolname,spcname从pg_database分贝,pg_authid Au,pg_tablespace,金,和spcname。

datname rolname spcname | |

------------ + --------- + ---------------

名称中my_tablespace | |

(1行)
二,dropdb:

删除现有的PostgreSQL数据库。

复制代码代码如下所示:

dropdb { }在选择…
1。命令行选项列表:
选项
解释
- e(-回声)
检索由dropdb生成的命令并将其发送到服务器。
- i(交互式)
做任何破坏性动作前的暗示。
- q(-安静)
没有显示响应。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的监视端口默认为5432。
–(用户名=用户名)
此操作的登录用户名。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

#连接服务器为Postgres,删除名称数据库。

U E的名称> dropdb Postgres

删除数据库的名称;

#通过查看系统表验证数据库是否已被删除。

psql / >

Postgres = # select count(*)从pg_database哪里datname = 'mydatabase;

计数

-----



(1行)
三、reindexdb:

重建一个指定的PostgreSQL数据库索引。

复制代码代码如下所示:

reindexdb {连接选项…{表T表{ } } | |指数指数{在} }我

reindexdb {连接选项{ -所有- | } }…

reindexdb {连接选项{系统} {在} - | }…
1。命令行选项列表:
选项
解释
-(全部)
整个数据库的索引被重建。
- e(-回声)
检索由reindexdb生成的命令并将其发送到服务器。
- i(index = index)
只重建指定的索引。
- q(-安静)
没有显示响应。
S(-系统)
数据库系统表的索引被重建。
- t(-表=表)
指定的数据表的索引仅被重建。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的监视端口默认为5432。
–(用户名=用户名)
此操作的登录用户名。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

#只有重建表数据各指标数据。

reindexdb -数据- U / Postgres Postgres

REINDEX TABLE TestTable;

只有指定的索引#重建testtable_idx

reindexdb -我testtable_idx·E·U / Postgres Postgres

重建索引testtable_idx;

#重建指定所有索引数据库的名称。

reindexdb /名称
四、vacuumdb:

垃圾收集和分析一个PostgreSQL数据库。

复制代码代码如下所示:

vacuumdb { } {选项--全F } { } {————详细- V的分析| | | Z } { T表(列{ { }{在},…)

vacuumdb { } {选项-所有- } {全F } {详细| | | V } {分析| Z }
1。命令行选项列表:
选项
解释
-(全部)
清理所有数据库。
- e(-回声)
检索由vacuumdb生成的命令并将其发送到服务器。
- f(-满)
进行彻底清洁。
- q(-安静)
没有显示响应。
T表(列{,{…} })
只有对指定的数据表进行清理或分析时,才需要在与分析选项一起使用时声明字段名称。
- v(详细)
打印过程中的详细信息。
z(-分析)
计算计划者使用的统计值。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的监视端口默认为5432。
–(用户名=用户名)
此操作的登录用户名。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

#清理数据库的名称。

vacuumdb / E的名称

真空;

#清洗和Postgres数据库中的数据表分析。

- E -分析- table'testtable'postgres > vacuumdb

真空分析数据;

#清洗和分析我的数据表字段的Postgres数据库。

- E -分析- t'testtable / vacuumdb(我Postgres)

真空分析数据(我);
五、createuser:

一个新的PostgreSQL用户帐户的定义,它需要说明的是,只有一个超级用户或与createrole权限的用户可以执行的命令。如果你想创建一个超级用户,你只能作为一个超级用户执行此命令。换句话说,普通用户createrole许可不能创建超级用户,使用如下命令:

复制代码代码如下所示:

创建用户{ } {用户名}选项…
1。命令行选项列表:
选项
解释
C号
为新创建的用户设置最大连接数,默认值不受限制。
D(- createdb)
允许新用户创建数据库。
D(没有createdb)
禁止新用户创建数据库。
- e(-回声)
检索由创建用户生成的命令并将其发送到服务器。
——E(加密)
对数据库中存储的用户密码进行密码加密。如果没有声明,则使用默认值。
-我(继承)
新创建的角色将自动继承其组角色的权限。
-我(没有继承权)
新创建的角色不会自动继承其组角色的权限。
l(-登录)
新角色将被授予登录权限,这是默认选项。
l(没有登录)
新角色未授予登录权限。
N(--加密)
不加密保存在数据库中的用户密码。如果没有声明,则使用默认值。
P(-- pwprompt)
如果您提供此选项,则在创建用户时将提示您设置密码。
R(- createrole)
新角色被授予创建数据库的权限。
R(--不createrole)
新角色未授予创建数据库的权限。
S(--超级用户)
新的角色是超级用户。
S(没有超级用户)
新的角色是不是一个超级用户。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的监视端口默认为5432。
–(用户名=用户名)
此操作的登录用户名。
- W(没有密码)
如果当前登录用户没有密码,您可以指定此选项直接登录。
2。应用实例:

复制代码代码如下所示:

对于一些#没有默认的选项,如(D/D)-(S / S)和(R / R),如果在命令行没有指定,所以在执行命令将消息

#注意提示将自动化脚本,将持续到输入命令后。

U Postgres中 /创建用户

将新的角色是一个超级用户(Y / N)N

允许新角色创建数据库(y N)y吗

允许新角色创建更多的新角色吗

创建角色的权限nosuperuser createdb nocreaterole继承登录;

#通过psql登录和查看系统的观点,来验证用户是否创建成功,以及新的角色是正确的。

psql / >

Postgres = #选择rolname,rolsuper,rolinherit,rolcreaterole,rolcreatedb,rolcanlogin从pg_roles哪里rolname =;

rolname rolsuper rolinherit rolcreaterole | | | | rolcreatedb | rolcanlogin

--------- + ---------- + + + + ------------- ------------- ------------ ---------------

F T F中| | | | | T T

(1行)

为了保证#自动化脚本将命令提示符挂了,我们都需要指定在执行命令没有默认选项。

创建用户U Postgres - E - S / D R myuser2

创建角色myuser2 nosuperuser nocreatedb nocreaterole继承登录;

我们可以#在创建用户时立即指定用户密码,操作由-p选项完成,但这种用法将挂自动化脚本,

#所以我们可以用一种妥协,即在创建用户时没有指定一个密码,对用户手册的密码成功后在一个自动化脚本执行。

P·S·E myuser3 >创建用户

输入新角色的密码:

再次输入:

创建角色myuser3 password'md5fe54c4f3129f2a766f53e4f4c9d2a698'superuser createdb createrole继承登录;
六、dropuser:

要删除一个数据库的用户账户,我们需要指出的是,只有超级用户或用户createrole特权可以执行命令。如果我们想删除超级用户,我们只能通过超级用户的身份执行命令:

复制代码代码如下所示:

dropuser { } {用户名}选项…
1。命令行选项列表:
选项
解释
- e(-回声)
检索由dropuser生成的命令并将其发送到服务器。
- i(交互式)
做任何破坏性动作前的暗示。
h(-主机=主机)
指定的服务器的主机名。
- p(-端口=端口)
如果未指定,指定服务器的监视端口默认为5432。
–(用户名=用户名)
此操作的登录用户名。
2。应用实例:

复制代码代码如下所示:

#直接删除指定的用户。

dropuser / E myuser3

删除角色myuser3;

在#删除指定用户,命令提示信息,以避免误操作。

-我myuser2 / dropuser

角色myuser2将被永久删除。

你确定(y/N)y吗

删除角色myuser2;
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部