他のバージョンの文書 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

1.3. データベースの作成

データベースサーバにアクセスできるかどうかを最初に試験してみるにはデータベースを作成してみることです。稼働中の PostgreSQL サーバは数多くのデータベースを管理できます。典型的には、プロジェクトやユーザ毎に分割したデータベースが使用されます。

サイト管理者が使用可能なデータベースを既に作成してくれていることもあります。そうであれば、管理者が使用できるデータベース名を教えてくれているはずです。この場合、ここで説明する段階を飛ばして、次の節まで進んで構いません。

新しいデータベースを作成するには、以下のコマンドを使用して下さい。この例では mydb というデータベース名です。

$ createdb mydb

これにたいし以下の応答が出力されます。

CREATE DATABASE

上の結果になれば、データベースの作成は成功で、この節の残りを飛ばしても構いません。

以下のようなメッセージが現れた場合、PostgreSQL が正しくインストールされていません。

createdb: command not found

インストールが全くされていないか検索パスの設定が正しくないかのいずれかです。代わりに絶対パスでコマンドを実行してみて下さい。

$ /usr/local/pgsql/bin/createdb mydb

パスはサイトによって異なるかもしれません。この問題の解決にはサイト管理者に連絡するか、インストール手順に戻って点検して下さい。

他の応答として以下もあります。

psql: could not connect to server: Connection refused
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

createdb: database creation failed

サーバが起動していないか、もしくは createdb が想定している場所でサーバが起動していないかを示しています。こちらも、インストール手順を点検するか管理者に相談して下さい。

データベースを作成するために必要な権限を持っていない場合は、以下のメッセージが現れます。

ERROR:  CREATE DATABASE: permission denied
createdb: database creation failed

全てのユーザがデータベースを新規に作成でき権限を持ってはいません。 PostgreSQL がデータベースの作成を拒否した場合、サイト管理者がデータベース作成の権限をユーザに付与する必要があります。このようになった時はサイト管理者に相談して下さい。自身で PostgreSQL をインストールしたのであれば、このチュートリアルの流れに沿うためにサーバを起動したユーザアカウントでログインしなければなりません。 [1]

他の名前のデータベースを作成することもできます。PostgreSQL は与えられたサイトの中にデータベースを好きなだけ作ることを妨げません。データベース名は先頭がアルファベット文字で始まる、最長 31文字までの制限があります。簡単にしたいと思ったら、現在のユーザ名と同じ名前のデータベースを作成しましょう。数多くのツールはデータベース名のデフォルトとしてユーザ名を仮定しているためキー入力の数が減らせます。ユーザ名と同じデータベースを作成するには、単純に以下を実行します。

$ createdb

データベースを必要としなくなれば、削除することができます。例えば、 mydb データベースの所有者(作成者)であれば以下のコマンドを使って破棄できます。

$ dropdb mydb

(このコマンドに対してはデータベース名のデフォルトはユーザアカウント名にはなりません。必ず指定する必要があります。)この作業はそのデータベースに関する全てのファイルを物理的に削除しますので、取り消すことはできません。ですから、事前よく熟考してから実施して下さい。

Notes

[1]

この作業の理由の説明: PostgreSQL のユーザ名はオペレーティングシステムのユーザアカウントとは分離されています。データベースに接続する場合、どんなユーザ名で PostgreSQL 接続するかが選択できます。選択しなかった時は現在のオペレーティグシステムのアカウントと同じ名前がデフォルトになります。実際そうなっているように、サーバを起動したオペレーティングシステムのユーザと同じ名前の PostgreSQL ユーザアカウントが常に存在します。そしてまた、そのユーザには常にデータベースを作成する権限があります。その該当するユーザでログインする代わりに、-U オプションを毎回使用して、接続に使用する PostgreSQL のユーザ名を選択することができます。