createdb
Name
createdb -- 创建一个新 PostgreSQL 数据库
Synopsis
createdb
[_connection-option_
...] [_option_
...] [_dbname_
[_description_
]]
描述
createdb 创建一个新 PostgreSQL 数据库。
通常,执行这个命令的数据库用户将成为新数据库的所有者。 不过,如果拥有合适的权限,那么也可以通过 -O
指定其他用户。
createdb 是一个 SQL 命令 CREATE DATABASE的封装。 因此,用哪种方法创建的数据库都一样。
选项
createdb 接受下列命令行参数:
_dbname_
要创建的数据库名。该名称应该在本节点的所有PostgreSQL 数据库中是唯一的。 缺省创建的数据库名称是与当前系统用户同名。
_description_
指定与新创建的数据库相关的注释。
-D
_tablespace_``--tablespace=``_tablespace_
指定数据库默认表空间。(这个名称被当作一个用双引号括起来的标识符处理。)
-e
--echo
回显 createdb 生成并发送到服务端的命令。
-E
_encoding_
--encoding=``_encoding_
指定在此数据库中使用的字符编码方案。 PostgreSQL 服务器支持的字符集在 Section 22.3.1 里列出。
-l
_locale_
--locale=``_locale_
指定在此数据库中使用的语言环境。 这相当于同时指定 --lc-collate
和 --lc-ctype
选项。
--lc-collate=``_locale_
指定数据库的LC_COLLATE设置。
--lc-ctype=``_locale_
指定数据库的LC_CTYPE设置。
-O
_owner_
--owner=``_owner_
指定将拥有新数据库的用户。(这个名称被当作一个用双引号括起来的标识符处理。)
-T
_template_
--template=``_template_
指定创建此数据库的模板数据库。(这个名称被当作一个用双引号括起来的标识符处理。)
-V
--version
输出createdb命令的版本信息,然后退出。
-?
--help
显示createdb命令的帮助信息,然后退出。
选项 -D
, -l
, -E
, -O
, 和 -T
对应底层的SQL命令 CREATE DATABASE的选项; 更多信息可以参考该命令的手册页。
createdb还接受以下命令行选项用于连接参数:
-h
_host_
--host=``_host_
指定运行服务器的主机名。如果数值以斜杠开头则被用作到Unix域套接字的路径。
-p
_port_
--port=``_port_
指定服务器侦听的TCP端口或一个本地Unix域套接字文件的扩展(描述符)。
-U
_username_
--username=``_username_
进行联接的用户名。
-w
--no-password
永远不提示输入密码。 如果服务器要求密码验证和密码 通过其他方式如.pgpass
文件(验证)不可用,则联接尝试将失败。 此选项在不需要用户输入密码的批处理作业和脚本中非常有用。
-W
--password
强制createdb联接到数据库之前提示输入密码。
这个选项不是必须的,如果服务器要求认证密码 createdb会自动提示需输入密码。 然而,createdb会浪费一个联接尝试判断出该服务器需要密码。 在某些情况下,这是值得键入-W
以避免多余的联接尝试。
--maintenance-db=``_dbname_
指定要创建新数据库时联接的数据库名称。 如果没有指定,将使用postgres
数据库; 如果不存在(或是正在创建的新数据库的名称), 将使用template1
数据库。
环境变量
PGDATABASE
如果设置了,那么就是要创建的新数据库的名称,除非在命令行上进行覆盖。
PGHOST
PGPORT
PGUSER
缺省的联接参数。 如果没有在命令行上和PGDATABASE
中声明数据库名称的话,PGUSER
还决定了要创建的数据库名称。 .
此实用工具,像大多其他的PostgreSQL实用工具, 还使用 libpq支持的环境变量(见 Section 31.14)。
诊断
如果有问题,将会显示后端错误信息。 参阅CREATE DATABASE 和psql获取可能的问题和错误消息的描述。 数据库服务端必须运行在目标主机。 此外,前端库libpq中的所有缺省连接设置和环境变量都将适用。
示例
用缺省数据库服务器创建一个demo
数据库:
<samp class="literal">$</samp> <kbd class="literal">createdb demo</kbd>
在主机eden
上创建demo
数据库,端口是5000, 使用LATIN1
编码方案, 并且回显执行的命令:
<samp class="literal">$</samp> <kbd class="literal">createdb -p 5000 -h eden -E LATIN1 -e demo</kbd>
<samp class="literal">CREATE DATABASE demo ENCODING 'LATIN1';</samp>