createdb — 创建一个新的 PostgreSQL 数据库
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 服务器支持的字符集在 第 24.3.1 节 中进行了描述。
-l locale
--locale=locale
指定要在此数据库中使用的语言环境。这等同于将 --lc-collate
、--lc-ctype
和 --icu-locale
指定为相同的值。某些语言环境仅对 ICU 有效,并且必须使用 --icu-locale
设置。
--lc-collate=locale
指定要在此数据库中使用的 LC_COLLATE 设置。
--lc-ctype=locale
指定要在此数据库中使用的 LC_CTYPE 设置。
--icu-locale=locale
如果选择了 ICU 语言环境提供程序,则指定要在此数据库中使用的 ICU 语言环境 ID。
--icu-rules=rules
指定附加排序规则,以自定义此数据库的默认排序行为。这仅受 ICU 支持。
--locale-provider={libc
|icu
}
指定数据库默认排序的区域设置提供程序。
-O owner
--owner=owner
指定将拥有新数据库的数据库用户。(此名称将作为双引号标识符进行处理。)
-S template
--strategy=strategy
指定数据库创建策略。有关更多详情,请参阅 CREATE DATABASE STRATEGY。
-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=端口
指定服务器侦听连接的 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 支持的环境变量(请参见 第 34.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;