はじめに
今回はPostgreSQLの標準付属ツールについて記事を書いていきます。
その中の、pg_ctl、createuser、dropuser、createdb、dropdb、psqlについてまとめました。
pg_ctlコマンドとは
「pg_ctl」は、PostgreSQLの管理コマンドの1つであり、PostgreSQLサーバーの起動、停止、再起動、再読み込み、状態の確認、および強制終了などを行うために使用されます。
具体的には、「pg_ctl initdb」「pg_ctl start」「pg_ctl stop」「pg_ctl restart」「pg_ctl reload」「pg_ctl status」「pg_ctl kill」の7つのサブコマンドがあります。
サブコマンドについて簡単に説明していきます。
pg_ctl initdb
新しいデータベースクラスタの作成と初期化を行います。
$ pg_ctl initdb -D /usr/local/pgsql/data
pg_ctl start
PostgreSQLサーバーを起動します。
$ pg_ctl start -D /usr/local/pgsql/data
pg_ctl stop
PostgreSQLサーバーを停止します。
$ pg_ctl stop -D /usr/local/pgsql/data
pg_ctl restart
PostgreSQLサーバーを再起動します。
$ pg_ctl restart -D /usr/local/pgsql/data
pg_ctl reload
PostgreSQLサーバーを再読み込みします。
$ pg_ctl reload -D /usr/local/pgsql/data
pg_ctl status
PostgreSQLサーバーの状態を確認します。
$ pg_ctl status -D /usr/local/pgsql/data
pg_ctl kill
PostgreSQLサーバーを強制終了します。
$ pg_ctl kill TERM `cat /usr/local/pgsql/data/postmaster.pid`
createuser/createdbコマンドとは
-
createuserコマンドとは
「createuser」は、PostgreSQLで新しいユーザーを作成するためのコマンドです。
データベース管理者(PostgreSQLのスーパーユーザー)のみが実行できます。ユーザー名、パスワード、権限などを指定してユーザーを作成することができます。 -
createdbとは
「createdb」は、PostgreSQLで新しいデータベースを作成するためのコマンドです。
データベース管理者のみが実行できます。データベース名、所有者、エンコーディング、ロケールなどを指定してデータベースを作成することができます。
コマンドについて簡単に説明していきます。
ユーザーを作成する
ユーザー名「myuser」を作成します。
$ createuser myuser
パスワードを指定する
パスワードを指定してユーザーを作成します。パスワードは、コマンド実行時に入力する必要があります。
$ createuser --pwprompt myuser
スーパーユーザーにする
スーパーユーザーになるユーザーを作成します。
スーパーユーザーになるユーザーを作成します。
データベースを作成する
データベース名を「mydb」を作成します。
$ createdb mydb
データベース所有者を指定する
データベース所有者をユーザー「myuser」に指定して、データベース名「mydb」を作成します。
$ createdb --owner myuser mydb
エンコーディングを指定する
エンコーディングをUTF8に指定して、データベース名「mydb」を作成します。
$ createdb --encoding UTF8 mydb
dropuser/dropdbとは
-
dropuserコマンドとは
「dropuser」は、PostgreSQLで既存のユーザーを削除するためのコマンドです。
データベース管理者(PostgreSQLのスーパーユーザー)のみが実行できます。 -
dropdbコマンドとは
「dropdb」は、PostgreSQLで既存のデータベースを削除するためのコマンドです。
データベース管理者のみが実行できます。
ユーザーを削除する
ユーザー名「myuser」を削除します。
$ dropuser myuser
強制的にユーザーを削除する
ユーザーを強制的に削除します。このオプションを使用すると、ユーザーに紐づくオブジェクトがすべて削除されます。
$ dropuser --force myuser
データベースを削除する
データベース名「mydb」を削除します
$ dropdb mydb
強制的にデータベースを削除する
データベースを強制的に削除します。このオプションを使用すると、データベースに紐づくオブジェクトがすべて削除されます。
$ dropdb --force mydb
データベースの削除を確認する
データベースの削除を確認するためのインタラクティブモードを起動します。このモードでは、削除するデータベースの情報を表示し、削除するかどうかをユーザーに確認します。
$ dropdb --interactive mydb
psqlコマンドとは
「psql」は、PostgreSQLに対するクライアントツールの1つで、PostgreSQLデータベースに対してSQLコマンドを送信するために使用されます。
psqlを使用することで、データベースに接続してデータの参照、更新、削除などを行うことができます。
データベースに接続する
PostgreSQLサーバーのホスト名が「localhost」、ポート番号が「5432」、ユーザー名が「myuser」、データベース名が「mydb」であるPostgreSQLデータベースに接続します。
$ psql -h localhost -p 5432 -U myuser mydb
SQLコマンドを実行する
PostgreSQLデータベースに接続し、「mytable」テーブルのすべてのレコードを取得します。
mydb=# SELECT * FROM mytable;
psqlコマンドラインからのコマンドの実行
psqlコマンドラインから、システムコマンドや外部コマンドを実行することができます。
具体的には、psqlコマンドラインで「\」で始まるコマンドを実行することができます。以下は、よく使用されるコマンドになります。
\qコマンド
psqlセッションを終了します
mydb=# \q
\dコマンド
テーブル「mytable」の詳細情報を表示します。
mydb=# \d mytable
ヘルプを表示する
psqlコマンドのヘルプ情報を表示します。
mydb=# \?
最後に
今回は、PostgreSQLの標準付属ツールについてまとめました。
これからも私自身が気になったことなどや勉強したことを投稿していこうと思うのでよかったら「いいね」と「フォロー」の程よろしくお願いいたします!
自分が過去に投稿したDB・SQL関連の記事を下記のURLからとべるので、もしよかったらこちらも参考にしてください!