createdb — 创建一个新的 PostgreSQL 数据库
createdb
[connection-option
...] [option
...] [dbname
[description
]]
createdb 会创建一个新的 PostgreSQL 数据库。
通常情况下,执行此命令的数据库用户会成为新数据库的所有者。但是,如果执行用户具有适当的权限,可以通过 -O
选项指定其他所有者。
createdb 是SQL命令 CREATE DATABASE
的一个包装。通过此实用程序或其他访问服务器的方法创建数据库之间没有实质性的差异。
createdb 接受以下命令行参数:
数据库名
指定要创建的数据库的名称。此名称必须在此群集中的所有 PostgreSQL 数据库中唯一。默认情况下,创建一个与当前系统用户同名的数据库。
说明
指定要与新创建的数据库关联的注释。
-D 表空间
--表空间=表空间
指定数据库的默认表空间。(此名称作为带双引号的标识符进行处理。)
-e
--回显
回显 createdb 生成并发送到服务器的命令。
-E 编码
--编码=编码
指定在此数据库中要使用的字符编码方案。由 PostgreSQL 服务器支持的字符集在 第 23.3.1 节 中进行了说明。
-l 区域设置
--区域设置=区域设置
指定在此数据库中要使用的区域设置。这相当于将 --lc-collate
、--lc-ctype
和 --icu-locale
指定为相同的值。某些区域设置仅对 ICU 有效,必须使用 --icu-locale
进行设置。
--lc-collate=区域设置
指定在此数据库中要使用的 LC_COLLATE 设置。
--lc-ctype=区域设置
指定在此数据库中要使用的 LC_CTYPE 设置。
--builtin-locale=语言环境
在使用内置程序库提供程序时,指定语言环境名称。语言环境支持在 第 23.1 节 中介绍。
--icu-locale=语言环境
如果选择了 ICU 语言环境提供程序,请指定要在这个数据库中使用的 ICU 语言环境 ID。
--icu-rules=规则
指定附加的排序规则,以自定义此数据库的默认排序行为。这仅受 ICU 支持。
--locale-provider={builtin
|libc
|icu
}
为数据库的默认排序指定区域设置提供程序。
-O 所有者
--owner=所有者
指定将拥有新数据库的数据库用户。(此名称被视为一个双引号标识符。)
-S 策略
--strategy=策略
指定数据库创建策略。有关更多详细信息,请参见 CREATE DATABASE STRATEGY。
-T 模板
--template=模板
指定从中构建此数据库的模板数据库。(此名称被视为一个双引号标识符。)
-V
--version
打印 createdb 版本,然后退出。
-?
--help
显示有关 createdb 命令行参数的帮助,然后退出。
选项 -D
、-l
、-E
、-O
和 -T
对应于底层 SQL 命令 CREATE DATABASE
的选项;请参见该文档以了解有关这些选项的更多信息。
createdb 还接受以下用于连接参数的命令行参数
-h 主机
--host=主机
指定服务器正在运行的机器的主机名。如果值以斜杠开头,则将其用作 Unix 域套接字的目录。
-p 端口
--port=端口
指定 TCP 端口或服务器侦听连接的本地 Unix 域套接字文件扩展名。
-U 用户名
--username=用户名
用于连接的用户名。
-w
--no-password
从不发出密码提示。如果服务器要求密码验证而其他方式(例如 .pgpass
文件)未提供密码,则连接尝试将失败。此选项可用于无人输入密码的批处理作业和脚本。
-W
--password
强制 createdb 在连接到数据库前提示输入密码。
此选项从来都不是必须的,因为如果服务器要求密码验证,createdb 将自动提示输入密码。但是,createdb 会浪费一次连接尝试以了解服务器是否需要密码。在某些情况下,值得键入 -W
以避免额外的连接尝试。
--maintenance-db=数据库名
创建新数据库时用于连接的数据库的名称。如果未指定,将使用 postgres
数据库;如果数据库不存在(或者如果它是要创建的新数据库的名称),将使用 template1
。这可以是 连接字符串。如果是这样,连接字符串参数将覆盖任何有冲突的命令行选项。
PGDATABASE
如果设置,则为要创建的数据库的名称,除非在命令行中覆盖。
PGHOST
PGPORT
PGUSER
默认连接参数。如果未在命令行或通过 PGDATABASE
指定,PGUSER
还将确定要创建的数据库的名称。
PG_COLOR
指定是否在诊断消息中使用颜色。可能的值为 always
、auto
和 never
。
此实用工具(同大多数其他 PostgreSQL 实用工具一样)还使用 libpq 支持的环境变量(参见 第 32.15 节)。
若遇到困难,请参见 CREATE DATABASE 和 psql 以了解有关潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。而且,libpq 前端库使用的任何默认连接设置和环境变量都将应用。
要使用默认数据库服务器创建数据库 demo
$
createdb demo
若要使用主机 eden
上的端口 5000 的服务器,以 template0
模板数据库创建数据库 demo
,请使用以下命令行命令和底层 SQL 命令
$
createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;