PostgreSQLの使い方メモ
提供: Astarisk Works Wiki
目次 |
インストール
psqlの使い方
SQLファイルを実行する
>psql -f SQLファイル -U 接続ユーザ名 -p 接続ポート 接続DB名
テーブルの一覧を見る
CURRENT_DB=>\z Access privileges for database "DB_NAME" Schema | Name | Type | Access privileges --------+------+------+-------------------
\dを使うとテーブルのオーナーも表示される。
CURRENT_DB=> \d
List of relations
Schema | Name | Type | Owner
--------+------------------------------+----------+----------
バキューム
>vacuumdb -d 対象DB名 -p 接続ポート -U 接続ユーザ名 -W
バックアップ・リストア
バックアップ
カスタムアーカイブ形式でダンプを出力する場合の例
>pg_dump -F c -h 接続ホスト名 -p 接続ポート名 -f 出力ファイル名 対象DB名
リストア
カスタムアーカイブをリストアする場合の例
>pg_restore -F c -U 接続ユーザ名 -d 対象DB名 -p 接続ポート名 バックアップダンプファイル名
ユーザの管理
ユーザの一覧を見る
psql> select usename from pg_user;
データベースユーザ/ロール一覧を見る
psql>\du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
------------+-----------+-------------+-----------+-------------+-----------
ユーザを登録する
>createuser ユーザ名
パスワードを設定するには次のコマンドをpsqlで実行する。
ユーザ名に大文字を使っているときにはダブルクオートで囲む。
>alter user "ユーザ名" with password '<パスワード>';
環境変数
次の環境変数はpsqlの動作に影響する。設定することで便利に使える。
| 環境変数 | 説明 |
|---|---|
| PGPORT | 接続するDBインスタンスの待ち受けポートを指定する。デフォルトの5432以外に変更している場合には設定しておくと便利 |
| PGUSER | 接続するときに利用するユーザを指定する |
| PGDATABASE | デフォルトの接続DBを設定する |
シェル等からSQLを実行するときにパスワードをパスする
次のように環境変数を設定してからpsqlを実行する。
スクリプト中にパスワードを書いてしまうのでセキュリティ上のいいかわるいかは属する組織で判断必要。
PGPASSWORD=○○○ /usr/local/pgsql/bin/psql -U postgres -h xxx.xxx.xxx.xxx testdb
パスワードファイルを使う方法もあるらしい。