createdb — 新しいPostgreSQLデータベースを作成する
createdb
[connection-option
...] [option
...] [dbname
[description
]]
createdbは、新しいPostgreSQLデータベースを作成します。
通常、このコマンドを実行したデータベースユーザが、新しいデータベースの所有者になります。
ただし、コマンドを実行するユーザが適切な権限を持っている場合、-O
オプションを使用して別のユーザを所有者に指定できます。
createdbはCREATE 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
診断メッセージで色を使うかどうかを指定します。
可能な値は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;