★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

createdb

createdb — 新しいPostgreSQLデータベースを作成する

概要

createdb [connection-option...] [option...] [dbname [description]]

説明

createdbは、新しいPostgreSQLデータベースを作成します。

通常、このコマンドを実行したデータベースユーザが、新しいデータベースの所有者になります。 ただし、コマンドを実行するユーザが適切な権限を持っている場合、-Oオプションを使用して別のユーザを所有者に指定できます。

createdbCREATE DATABASEというSQLコマンドのラッパーです。 したがって、このユーティリティでデータベースを作成しても、これ以外の方法でサーバにアクセスしてデータベースを作成しても何も違いはありません。

オプション

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 strategy
--strategy=strategy

データベース作成手法を指定します。 詳細はCREATE DATABASE STRATEGYを参照してください。

-T template
--template=template

このデータベースの構築に使用するテンプレートデータベースを指定します。 (この名前は二重引用符で囲まれた識別子として処理されます。)

-V
--version

createdbのバージョンを表示し、終了します。

-?
--help

createdbのコマンドライン引数の使用方法を表示し、終了します。

オプション-D-l-E-O、および-Tは、基盤となるCREATE DATABASEというSQLコマンドのオプションにそれぞれ対応しています。 詳細はそちらを参照してください。

また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が作成するデータベースの名前にもなります。

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;

関連項目

dropdb, CREATE DATABASE