零
密码文档:
在给其他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;