Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14

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 服务器支持的字符集在 第 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支持的环境变量(见 第 31.14 节)。

诊断

如果有问题,将会显示后端错误消息。 参阅CREATE DATABASEpsql获取可能的问题和错误消息的描述。 数据库服务端必须运行在目标主机。 此外,前端库libpq中的所有缺省连接设置和环境变量都将适用。

示例

用缺省数据库服务器创建一个demo数据库:

$ createdb demo

在主机eden上创建demo数据库,端口是5000, 使用LATIN1编码方案, 并且回显执行的命令:

$ createdb -p 5000 -h eden -E LATIN1 -e demo
CREATE DATABASE demo ENCODING 'LATIN1';

另请参阅

dropdb, CREATE DATABASE