Tutorial

Ubuntu 20.04にPostgreSQLをインストールする方法 [クイックスタート]

UbuntuPostgreSQLQuickstartDatabasesUbuntu 20.04

はじめに

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

このガイドは、PostgreSQLのインストールから新しいユーザーとデータベースのセットアップまで、Ubuntu 20.04サーバーにPostgresを手早く立ち上げ、実行する方法を示します。 PostgreSQLデータベースのインストールと管理に関するより詳細なチュートリアルについては、Ubuntu 20.04にPostgreSQLをインストールして使用する方法を参照してください。

前提条件

このチュートリアルを実行するには、ガイドUbuntu 20.04の初期サーバーのセットアップに従って設定したUbuntu 20.04サーバー1台が必要です。この前提条件となるチュートリアルを完了すると、サーバーにはsudo権限と基本的なファイアウォールを備えたroot以外のユーザーがあるはずです。

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

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

  • sudo apt update

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

  • sudo apt install postgresql postgresql-contrib

ステップ2 — PostgreSQLのロールとデータベースの使用

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

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

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

  • sudo -i -u postgres

次のように入力して、Postgresプロンプトにアクセスできます。

  • psql

これによりPostgreSQLプロンプトにログインし、そこからすぐにデータベース管理システムとやり取りできます。

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

  • \q

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

  • exit

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

  • sudo -u postgres psql

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

ここでも、次のように入力して、Postgresの対話型セッションを終了できます。

  • \q

ステップ3 — 新しいロールの作成

postgresアカウントとしてログインしている場合、次のように入力して新しいロールを作成できます。

  • createuser --interactive

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

  • 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 アカウントとしてログインしている場合、次のように入力します。

  • createdb sammy

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

  • sudo -u postgres createdb sammy

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

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

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

  • sudo adduser sammy

この新しいアカウントが使用可能になったら、切り替えて次のように入力してデータベースに接続できます。

  • sudo -i -u sammy
  • psql

また、インラインでも接続できます:

  • sudo -u sammy psql

このコマンドは、すべてのコンポーネントが正しく設定されていると見なして自動ログインします。

ユーザーを別のデータベースに接続させたい場合は、次のようにデータベースを指定することで可能です。

  • psql -d postgres

ログインすると、次のように入力して現在の接続情報を確認できます。

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

まとめ

これで、Ubuntu 20.04サーバーでPostgreSQLがセットアップされました。Postgresやその使用方法の詳細については、次のガイドを参照してください。

Creative Commons License