序章

PostgreSQL 、またはPostgresは、SQLクエリ言語の実装を提供するリレーショナルデータベース管理システムです。 これは標準に準拠しており、信頼性の高いトランザクションや読み取りロックのない同時実行性など、多くの高度な機能を備えています。

このガイドでは、PostgreSQLのインストールから新しいユーザーとデータベースのセットアップまで、Ubuntu20.04サーバーでPostgresをすばやく起動して実行する方法を示します。 PostgreSQLデータベースのインストールと管理に関するより詳細なチュートリアルが必要な場合は、 Ubuntu20.04にPostgreSQLをインストールして使用する方法を参照してください。

前提条件

このチュートリアルに従うには、 Ubuntu20.04の初期サーバーセットアップガイドに従って構成された1つのUbuntu20.04サーバーが必要です。 この前提条件のチュートリアルを完了すると、サーバーには、sudo権限と基本的なファイアウォールを持つ非rootユーザーが必要になります。

このページに埋め込まれているインタラクティブ端末を使用して、このチュートリアルでPostgreSQLのインストールと構成を試すこともできます。 次のLaunch an Interactive Terminal!ボタンをクリックして開始します。

ステップ1—PostgreSQLのインストール

PostgreSQLをインストールするには、最初にサーバーのローカルパッケージインデックスを更新します。

  1. sudo apt update

次に、いくつかの追加のユーティリティと機能を追加する-contribパッケージと一緒にPostgresパッケージをインストールします。

  1. sudo apt install postgresql postgresql-contrib

サービスが開始されていることを確認します。

  1. sudo systemctl start postgresql.service

ステップ2—PostgreSQLの役割とデータベースを使用する

デフォルトでは、Postgresは「ロール」と呼ばれる概念を使用して認証と承認を処理します。 これらは、いくつかの点で、通常のUnixスタイルのユーザーおよびグループに似ています。

インストール時に、Postgresは ident 認証を使用するように設定されます。つまり、Postgresの役割を一致するUnix/Linuxシステムアカウントに関連付けます。 Postgres内にロールが存在する場合、同じ名前のUnix/Linuxユーザー名がそのロールとしてサインインできます。

インストール手順により、デフォルトのPostgresロールに関連付けられたpostgresというユーザーアカウントが作成されました。 このアカウントを利用してPostgresにアクセスする方法はいくつかあります。 1つの方法は、次のコマンドを実行して、サーバー上のpostgresアカウントに切り替えることです。

  1. sudo -i -u postgres

次に、以下を実行してPostgresプロンプトにアクセスできます。

  1. psql

これによりPostgreSQLプロンプトにログインし、ここからデータベース管理システムをすぐに自由に操作できます。

PostgreSQLプロンプトを終了するには、次のコマンドを実行します。

  1. \q

これにより、 postgresLinuxコマンドプロンプトに戻ります。 通常のシステムユーザーに戻るには、exitコマンドを実行します。

  1. exit

Postgresプロンプトに接続する別の方法は、sudoを使用してpostgresアカウントとしてpsqlコマンドを直接実行することです。

  1. sudo -u postgres psql

これにより、中間のbashシェルを介さずに、Postgresに直接ログインできます。

ここでも、以下を実行してインタラクティブなPostgresセッションを終了できます。

  1. \q

ステップ3—新しい役割を作成する

postgres アカウントとしてログインしている場合は、次のコマンドを実行して新しい役割を作成できます。

  1. createuser --interactive

代わりに、通常のアカウントから切り替えずに各コマンドにsudoを使用する場合は、次のコマンドを実行します。

  1. sudo -u postgres createuser --interactive

いずれにせよ、スクリプトはいくつかの選択肢を表示し、応答に基づいて正しいPostgresコマンドを実行して、指定したユーザーを作成します。

Output
Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

ステップ4—新しいデータベースの作成

Postgres認証システムがデフォルトで行うもう1つの前提は、ログインに使用されるロールの場合、そのロールにはアクセスできる同じ名前のデータベースがあるということです。

これは、前のセクションで作成したユーザーが sammy と呼ばれる場合、そのロールはデフォルトで「sammy」とも呼ばれるデータベースへの接続を試みることを意味します。 createdbコマンドを使用して、適切なデータベースを作成できます。

postgres アカウントとしてログインしている場合は、次のように入力します。

  1. createdb sammy

代わりに、通常のアカウントから切り替えずに各コマンドにsudoを使用する場合は、次のコマンドを実行します。

  1. sudo -u postgres createdb sammy

ステップ5—新しい役割でPostgresプロンプトを開く

identベースの認証でログインするには、Postgresの役割およびデータベースと同じ名前のLinuxユーザーが必要です。

一致するLinuxユーザーが利用できない場合は、adduserコマンドを使用して作成できます。 これは、sudo権限を持つroot 以外のアカウントから行う必要があります(つまり、 postgres ユーザーとしてログインしていません)。

  1. sudo adduser sammy

この新しいアカウントが利用可能になったら、次のコマンドを実行して、データベースに切り替えて接続できます。

  1. sudo -i -u sammy
  2. psql

または、これをインラインで実行できます。

  1. sudo -u sammy psql

このコマンドは、すべてのコンポーネントが適切に構成されていることを前提として、自動的にログインします。

ユーザーが別のデータベースに接続するようにする場合は、次のようにデータベースを指定することで接続できます。

  1. psql -d postgres

ログインすると、次のコマンドを実行して現在の接続情報を確認できます。

  1. \conninfo
Output
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

結論

これで、Ubuntu20.04サーバーでPostgreSQLがセットアップされました。 Postgresとその使用方法について詳しく知りたい場合は、次のガイドを確認することをお勧めします。