Skip to content

createdb

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

指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

此实用程序与大多数其他PostgreSQL实用程序一样,也使用libpq支持的环境变量(请参见第 34.15 节)。

诊断

如果遇到困难,请参见CREATE DATABASEpsql,了解有关潜在问题和错误消息的讨论。数据库服务器必须在目标主机上运行。此外,libpq前端库使用的任何默认连接设置和环境变量都将适用。

示例

使用默认数据库服务器创建数据库demo

$ createdb demo

使用主机eden、端口 5000 上的服务器,使用template0模板数据库创建数据库demo,以下是命令行命令和底层 SQL 命令

$ createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;

另请参见

dropdbCREATE DATABASE