PostgreSQL学习手册(客户端命令).doc
《PostgreSQL学习手册(客户端命令).doc》由会员分享,可在线阅读,更多相关《PostgreSQL学习手册(客户端命令).doc(15页珍藏版)》请在咨信网上搜索。
1、零、口令文件: 在 给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示 例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令 均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令文件,这样就可以在我们连接PostgreSQL服务器时,客户端命令自动读取该文件已获得登录时所需要的口令信息。该文件的格式如下: hostname:port:database:userna
2、me:password 以上数据是用冒号作为分隔符,总共分为五个字段,分别表示服务器主机名(IP)、服务器监听的端口号、登录访问的数据库名、登录用户名和密码,其中前四个字段都可以使用星号(*)来表示匹配任意值。见如下示例: / cat .pgpass *:5432:postgres:postgres:123456 CTRL+D #.pgpass文件的权限必须为0600,从而防止任何全局或者同组的用户访问,否则这个文件将被忽略。 / chmod 0600 .pgpass 在学习后面的客户端命令之前,我们需要根据自己的应用环境手工创建该文件, 以便后面所有的示例代码都会用到该口令文件,这样它们就都
3、可以以批处理的方式自动完成。一、createdb: 创建一个新的PostgreSQL数据库。该命令的使用方式如下: createdb option. dbname description 1. 命令行选项列表:选项说明-D(-tablespace=tablespace)指定数据库的缺省表空间。-e(-echo)回显createdb生成的命令并且把它发送到服务器。-E(-encoding=encoding)指定用于此数据库的字符编码方式。-l(-locale=locale)指定用于此数据库的本地化设置。-O(-owner=owner)指定新建数据库的拥有者,如果未指定此选项,该值为当前登录的用户
4、。 -T(-template=template)指定创建此数据库的模板数据库。-h(-host=host)指定PostgreSQL服务器的主机名。-p(-port=port)指定服务器的侦听端口,如不指定,则为缺省的5432。-U(-username=username)本次操作的登录用户名,如果-O选项没有指定,此数据库的Owner将为该登录用户。-w(-no-password)如果当前登录用户没有密码,可以指定该选项直接登录。 2. 应用示例: #1. 以postgres的身份登录。(详情参照上面口令文件的内容) / psql #2. 创建表空间。 postgres=# CREATE TAB
5、LESPACE my_tablespace LOCATION /opt/PostgreSQL/9.1/mydata; CREATE TABLESPACE #3. 创建新数据库的owner。 postgres=# CREATE ROLE myuser LOGIN PASSWORD 123456; CREATE ROLE postgres=# q #4. 创建新数据库,其中本次连接的登录用户为postgres,新数据库的owner为myuser, 表空间为my_tablespace,新数据库名为mydatabase。 / createdb -U postgres -O myuser -D my_t
6、ablespace -e mydatabase CREATE DATABASE mydatabase OWNER myuser TABLESPACE my_tablespace; #5. 重新登录,通过查询系统表查看该数据库是否创建成功,以及表空间和所有者是否一致。 / psql postgres=# SELECT datname,rolname,spcname FROM pg_database db, pg_authid au, pg_tablespace ts WHERE datname = mydatabase AND datdba = au.oid AND dattablespace
7、= ts.oid; datname | rolname | spcname -+-+- mydatabase | myuser | my_tablespace (1 row)二、dropdb: 删除一个现有PostgreSQL数据库。 dropdb option. dbname 1. 命令行选项列表:选项说明-e(-echo)回显dropdb生成的命令并且把它发送到服务器。-i(-interactive)在做任何破坏性动作前提示。 -q(-quiet)不显示响应。-h(-host=host)指定PostgreSQL服务器的主机名。-p(-port=port)指定服务器的监听端口,如不指定,则为
8、缺省的5432。-U(-username=username)本次操作的登录用户名。-w(-no-password)如果当前登录用户没有密码,可以指定该选项直接登录。 2. 应用示例: #以postgres的身份连接服务器,删除mydatabase数据库。 / dropdb -U postgres -e mydatabase DROP DATABASE mydatabase; #通过查看系统表验证该数据库是否已经被删除。 / psql postgres=# SELECT count(*) FROM pg_database WHERE datname = mydatabase; count - 0
9、 (1 row)三、reindexdb: 为一个指定的PostgreSQL数据库重建索引。 reindexdb connection-option. -table | -t table -index | -i index dbname reindexdb connection-option. -all | -a reindexdb connection-option. -system | -s dbname 1. 命令行选项列表:选项说明-a(-all)重建整个数据库的索引。-e(-echo)回显reindexdb生成的命令并且把它发送到服务器。-i(-index=index)仅重建指定的索引
10、。-q(-quiet)不显示响应。-s(-system)重建数据库系统表的索引。-t(-table=table)仅重建指定数据表的索引。-h(-host=host)指定PostgreSQL服务器的主机名。-p(-port=port)指定服务器的监听端口,如不指定,则为缺省的5432。-U(-username=username)本次操作的登录用户名。-w(-no-password)如果当前登录用户没有密码,可以指定该选项直接登录。 2. 应用示例: #仅重建数据表testtable上的全部索引。 / reindexdb -t testtable -e -U postgres postgres R
11、EINDEX TABLE testtable; #仅重建指定索引testtable_idx / reindexdb -i testtable_idx -e -U postgres postgres REINDEX INDEX testtable_idx; #重建指定数据库mydatabase的全部索引。 / reindexdb mydatabase四、vacuumdb: 收集垃圾并且分析一个PostgreSQL数据库。 vacuumdb -options -full | -f -verbose | -v -analyze | -z -t table (column ,.) dbname vac
12、uumdb -options -all | -a -full | -f -verbose | -v -analyze | -z 1. 命令行选项列表:选项说明-a(-all)清理所有数据库。 -e(-echo)回显vacuumdb生成的命令并且把它发送到服务器。-f(-full)执行完全清理。-q(-quiet)不显示响应。-t table (column ,.)仅仅清理或分析指定的数据表,字段名只是在与-analyze选项联合使用时才需要声明。-v(-verbose)在处理过程中打印详细信息。-z(-analyze)计算用于规划器的统计值。-h(-host=host)指定PostgreSQL
13、服务器的主机名。-p(-port=port)指定服务器的监听端口,如不指定,则为缺省的5432。-U(-username=username)本次操作的登录用户名。-w(-no-password)如果当前登录用户没有密码,可以指定该选项直接登录。 2. 应用示例: #清理整个数据库mydatabase。 / vacuumdb -e mydatabase VACUUM; #清理并分析postgres数据库中的testtable表。 / vacuumdb -e -analyze -table testtable postgres VACUUM ANALYZE testtable; #清理并分析pos
14、tgres数据库中的testtable表的i字段。 / vacuumdb -e -analyze -t testtable(i) postgres VACUUM ANALYZE testtable(i);五、createuser: 定义一个新的PostgreSQL用户帐户,需要说明的是只有超级用户或者是带有CREATEROLE权限的用户才可以执行该命令。如果希望创建的是超级用户,那么只能以超级用户的身份执行该命令,换句话说,带有CREATEROLE权限的普通用户无法创建超级用户。该命令的使用方式如下: createuser option. username 1. 命令行选项列表:选项说明-c
15、number设置新创建用户的最大连接数,缺省为没有限制。-d(-createdb)允许该新建用户创建数据库。-D(-no-createdb)禁止该新建用户创建数据库。 -e(-echo)回显createuser生成的命令并且把它发送到服务器。-E(-encrypted)对保存在数据库里的用户口令加密。如果没有声明, 则使用缺省值。 -i(-inherit)新创建的角色将自动继承它的组角色的权限。-I(-no-inherit)新创建的角色不会自动继承它的组角色的权限。-l(-login)新角色将被授予登录权限,该选项为缺省选项。-L(-no-login)新角色没有被授予登录权限。-N(-unen
16、crypted)不对保存在数据库里的用户口令加密。如果没有声明, 则使用缺省值。-P(-pwprompt)如果给出该选项,在创建用户时将提示设置口令。-r(-createrole)新角色被授予创建数据库的权限。-R(-no-createrole)新角色没有被授予创建数据库的权限。-s(-superuser)新角色为超级用户。-S(-no-superuser)新角色不是超级用户。-h(-host=host)指定PostgreSQL服务器的主机名。-p(-port=port)指定服务器的监听端口,如不指定,则为缺省的5432。-U(-username=username)本次操作的登录用户名。-w(
17、-no-password)如果当前登录用户没有密码,可以指定该选项直接登录。 2. 应用示例: # 对于有些没有缺省设置的选项,如-(d/D)、-(s/S)和-(r/R),如果在命令行中没有直接指定,那么在执行该命令是将会给出提示信息。 # 需要注意的是该提示将会挂起自动化脚本,直到输入后命令才会继续执行。 / createuser -U postgres myuser Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the n
18、ew role be allowed to create more new roles? (y/n) n CREATE ROLE myuser NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN; # 通过psql登录后查看系统视图,以验证该用户是否成功创建,以及新角色的权限是否正确。 / psql postgres=# SELECT rolname,rolsuper,rolinherit,rolcreaterole,rolcreatedb,rolcanlogin FROM pg_roles WHERE rolname = myuser; rolna
19、me | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin -+-+-+-+-+- myuser | f | t | f | t | t (1 row) # 为了保证自动化脚本不会被该命令的提示挂起,我们需要在执行该命令时指定所有没有缺省值的选项。 / createuser -U postgres -e -S -D -R myuser2 CREATE ROLE myuser2 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; # 我们可以在创建用户时即刻指定该用
20、户的密码,该操作由-P选项完成,然而这样的用法一定会挂起自动化脚本, # 因此我们可以采用一种折中的办法,即在创建用户时不指定密码,在自动化脚本执行成功后再手工该用户的密码。 / createuser -P -s -e myuser3 Enter password for new role: Enter it again: CREATE ROLE myuser3 PASSWORD md5fe54c4f3129f2a766f53e4f4c9d2a698 SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;六、dropuser: 删除一个PostgreSQL用户
21、帐户,需要说明的是只有超级用户或带有CREATEROLE权限的用户可以执行该命令,如果要删除超级用户,只能通过超级用户的身份执行该命令。该命令的使用方式如下: dropuser option. username 1. 命令行选项列表:选项说明-e(-echo)回显dropuser生成的命令并且把它发送到服务器。-i(-interactive)在做任何破坏性动作前提示。 -h(-host=host)指定PostgreSQL服务器的主机名。-p(-port=port)指定服务器的监听端口,如不指定,则为缺省的5432。-U(-username=username)本次操作的登录用户名。-w(-no-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PostgreSQL 学习 手册 客户端 命令
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。