環境設定#
クライアントおよびサーバーツールのインストール#
詳細は、https://www.postgresql.org/download/ リンクで指示された手順を参照してください。
(のみ) クライアント接続ツールのインストール#
# Debianオペレーティングシステム
sudo apt update
sudo apt install postgresql-client
# MacOSオペレーティングシステム
brew install libpq
サービス管理#
Linux オペレーティングシステムでは、systemctl
を使用してサービスを管理します。サービス名は postgresql
で、次のようなコマンドを使用できます:
# サービスの起動
systemctl status postgresql
# サービスの再起動
systemctl restart postgresql
# 設定ファイルの再読み込み
systemctl reload postgresql
# サービスの停止
systemctl stop postgresql
ユーザー管理#
-- ユーザーの作成
CREATE USER <username> WITH PASSWORD '<password>';
-- 権限の付与 (個別のデータベース)
GRANT ALL PRIVILEGES ON DATABASE <database> TO <username>;
-- 権限の付与 (個別のテーブル)
ALTER TABLE <table_name> OWNER TO <username>;
-- パスワードの変更
ALTER USER <username> WITH PASSWORD <new_password>;
PostgreSQL 組み込みのステートメント#
-- サーバー上のすべてのデータベースをリストアップ
\l
\list
-- 特定のデータベースを使用
\c <db_name>
\connect <db_name>
-- データベース内のすべてのテーブルをリストアップ
\dt
-- データベース内のすべてのテーブルとビューをリストアップ
\d
\dtvmsE
-- 指定したテーブルの構造を取得
\d <table_name>
-- SQLファイルのインポート
\i <filename>
\include <filename>
DDL (データ定義言語)#
-- データベースの作成
CREATE DATABASE mydb;
-- データベースの削除
DROP DATABASE mydb;
psql (PostgreSQL インタラクティブターミナル)#
コマンドラインで SQL 文を実行する#
psql -h <host> -d <db_name> -U <username> -d <database> -c "<sql>"
パスワードなしでコマンドラインで SQL 文を実行する#
方法 1:環境変数#
export PGPASSWORD='<password>'
設定が完了したら、通常のコマンドを実行できます。例:
方法 2:.pgpass 設定ファイル#
ユーザーのホームディレクトリ(たとえば ~/
)に .pgpass
ファイルを作成し、次の内容を入力します(尖括号内の内容を実際の情報に置き換えてください):
<host>:<port>:<db_name>:<username>:<password>
次に、.pgpass
ファイルのパーミッションを設定し、ユーザー自身だけがファイルを読み取りおよび書き込みできるようにします:
chmod 600 "$HOME/.pgpass"
その後、パスワードなしでコマンドを実行してみてください:
psql -h <host> -d <db_name> -U <username> -c "<sql>"
また、PGPASSFILE
環境変数を設定して、カスタムパスの .pgpass
を指定することもできます:
export PGPASSFILE="/path/to/.pgpass"
方法 3:pg_service.conf 設定ファイル#
ユーザーのホームディレクトリに .pg_service.conf
設定ファイルを作成し、次の内容を入力します(尖括号内の内容を実際の情報に置き換えてください):
[myservice]
host=<host>
port=<port>
dbname=<db_name>
user=<username>
password=<password>
その後、PGSERVICE
環境変数を設定して、設定ファイル内の指定された名前にします:
export PGSERVICE="myservice"
最後に、パスワードなしでコマンドを実行してみてください:
psql -c "<sql>"
注意:.pg_service.conf
を使用すると、複数のサービス接続設定を保存できます。異なる設定に切り替えるには、PGSERVICE
環境変数を特定の名前に変更します。
また、PGSERVICEFILE
環境変数を設定して、カスタムパスの .pg_service.conf
を指定することもできます:
export PGPASSFILE="/path/to/.pg_service.conf"