# 创建数据库

createdb — 创建一个新的 PostgreSQL 数据库

# 概要

创建数据库 [连接选项...][option...][数据库名称 [描述]]

# 描述

createdb 创建一个新的 PostgreSQL 数据库。

通常,执行此命令的数据库用户成为新数据库的所有者。但是,可以通过-O选项,如果执行用户具有适当的权限。

createdb 是 SQL 命令的包装器创建数据库.通过此实用程序创建数据库与通过其他访问服务器的方法创建数据库之间没有有效的区别。

# 选项

createdb 接受以下命令行参数:

数据库名称

指定要创建的数据库的名称。该名称在此集群中的所有 PostgreSQL 数据库中必须是唯一的。默认是创建一个与当前系统用户同名的数据库。

描述

指定要与新创建的数据库关联的注释。

-D *表空间*
--表空间=*表空间*

指定数据库的默认表空间。(此名称作为双引号标识符处理。)

-e
- 回声

回显 createdb 生成并发送到服务器的命令。

-E *编码*
--编码=*编码*

指定要在此数据库中使用的字符编码方案。PostgreSQL 服务器支持的字符集在第 24.3.1 节.

-l *语言环境*
--locale=*语言环境*

指定要在此数据库中使用的语言环境。这相当于同时指定--lc-整理--lc-ctype.

--lc-整理=*语言环境*

指定 LC_要在此数据库中使用的 COLLATE 设置。

--lc-ctype=*语言环境*

指定 LC_要在此数据库中使用的 CTYPE 设置。

-O *所有者*
--所有者=*所有者*

指定将拥有新数据库的数据库用户。(此名称作为双引号标识符处理。)

-T *模板*
--模板=*模板*

指定从中构建此数据库的模板数据库。(此名称作为双引号标识符处理。)

-V
- 版本

打印 createdb 版本并退出。

-?
- 帮助

显示有关 createdb 命令行参数的帮助,然后退出。

选项-D,-l,-E,-O, 和-T对应底层 SQL 命令的选项创建数据库;有关它们的更多信息,请参见那里。

createdb 还接受以下命令行参数作为连接参数:

-h *主持人*
--主机=*主持人*

指定运行服务器的机器的主机名。如果该值以斜杠开头,则将其用作 Unix 域套接字的目录。

-p *港口*
--端口=*港口*

指定服务器正在侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。

-U *用户名*
--用户名=*用户名*

要连接的用户名。

-w
--无密码

永远不要发出密码提示。如果服务器需要密码验证,而密码无法通过其他方式获得,例如.pgpass文件,连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。

-W
- 密码

强制 createdb 在连接到数据库之前提示输入密码。

这个选项从来都不是必需的,因为如果服务器要求密码验证,createdb 会自动提示输入密码。但是,createdb 会浪费一次连接尝试,发现服务器需要密码。在某些情况下,值得输入-W以避免额外的连接尝试。

--维护数据库=*数据库名称*

指定创建新数据库时要连接的数据库的名称。如果未指定,则postgres将使用数据库;如果它不存在(或者如果它是正在创建的新数据库的名称),模板1将会被使用。这可以是一个连接字符串.如果是这样,连接字符串参数将覆盖任何冲突的命令行选项。

# 环境

PG数据库

如果设置,则为要创建的数据库的名称,除非在命令行上被覆盖。

PGHOST
PGPORT
PG用户

默认连接参数。PG用户还确定要创建的数据库的名称,如果未在命令行中指定或通过PG数据库.

PG_COLOR

指定是否在诊断消息中使用颜色。可能的值为总是,汽车绝不.

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

# 诊断

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

# 例子

创建数据库演示使用默认数据库服务器:

$ createdb demo

创建数据库演示使用主机上的服务器伊甸园,端口 5000,使用模板0模板数据库,这里是命令行命令和底层 SQL 命令:

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

# 也可以看看

删除数据库,创建数据库