DB/PostgreSQL

DB初期構築

DBユーザー作成

# useradd <UserName>
# su - postgres
$ createuser -a -d -U <UserName> -P
オプション説明
-a新しいPostgreSQLユーザは、他のユーザを作成可能
-d新しいPostgreSQLユーザは、データベースの作成可能
-D接続ユーザ名。PostgreSQLに接続するユーザ名を指定する
-P新しいPostgreSQLユーザのパスワードを設定する

DB作成

$ createdb -E EUC-JP -O <UserName> -U <UserName> <DB名>
オプション説明
-E作成するデータベース内で使用する文字エンコード方式を指定(EUC-JP/UTF-8)
-O作成するデータベースの所有者となるユーザを指定
-UPostgreSQLに接続するユーザ名を指定

DBバックアップ

$ pg_dump --file=ファイル名


DB再作成

$ pg_ctl stop

DBのデータが格納されているディレクトリを全て削除する

$ initdb
$ pg_ctl start
$ psql <UserName> < バックアップしたDMPファイル


psqlコマンド

DB一覧(文字コードの確認)

$ psql -l

DB接続

$ psql -h <ホスト名> [-U ユーザー名] [-d DB名]
※ デフォルトのDB名は postgres

sqlファイルを一括実行

$ psql -f <SQLファイル> -U <UserName> <DB名>


DB操作

psqlコマンド

コマンド説明
\hSQLコマンドのヘルプを表示
\?psqlコマンドのヘルプを表示
\qDBから抜ける
\pクエリーバッファの内容を表示
\o [ファイル]すべてのクエリーの結果をファイルに出力する
\d[S+]テーブル、ビュー、シーケンスの一覧を表示
\d[S+] [TBL名]テーブル、ビュー、シーケンス、インデックスの説明(カラム表示)TABLE名は*も使用可能
\cd [DIR]カレントディレクトリを変更
\! [コマンド]シェルでコマンドを実行、もしくは会話型シェルを起動


DB作成

CREATE DATABASE "dsm";
CREATE ROLE "dsmadmin" WITH LOGIN PASSWORD 'P0ssw0rd';
GRANT ALL ON DATABASE "dsm" TO "dsmadmin";
GRANT CONNECT ON DATABASE "dsm" TO "dsmadmin";

システムカタログ

PostgreSQLの情報を保持しているテーブルで、pg_ で始まる
詳細は公式のマニュアル(システムカタログ)参照
http://www.postgresql.jp/document/9.1/html/catalogs.html


トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-17 (火) 17:51:07 (1676d)