Ubuntu20.04にPostgreSQLをインストールする方法[クイックスタート]
序章
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をインストールするには、最初にサーバーのローカルパッケージインデックスを更新します。
- sudo apt update
次に、いくつかの追加のユーティリティと機能を追加する-contrib
パッケージと一緒にPostgresパッケージをインストールします。
- sudo apt install postgresql postgresql-contrib
サービスが開始されていることを確認します。
- sudo systemctl start postgresql.service
ステップ2—PostgreSQLの役割とデータベースを使用する
デフォルトでは、Postgresは「ロール」と呼ばれる概念を使用して認証と承認を処理します。 これらは、いくつかの点で、通常のUnixスタイルのユーザーおよびグループに似ています。
インストール時に、Postgresは ident 認証を使用するように設定されます。つまり、Postgresの役割を一致するUnix/Linuxシステムアカウントに関連付けます。 Postgres内にロールが存在する場合、同じ名前のUnix/Linuxユーザー名がそのロールとしてサインインできます。
インストール手順により、デフォルトのPostgresロールに関連付けられたpostgresというユーザーアカウントが作成されました。 このアカウントを利用してPostgresにアクセスする方法はいくつかあります。 1つの方法は、次のコマンドを実行して、サーバー上のpostgresアカウントに切り替えることです。
- sudo -i -u postgres
次に、以下を実行してPostgresプロンプトにアクセスできます。
- psql
これによりPostgreSQLプロンプトにログインし、ここからデータベース管理システムをすぐに自由に操作できます。
PostgreSQLプロンプトを終了するには、次のコマンドを実行します。
- \q
これにより、 postgresLinuxコマンドプロンプトに戻ります。 通常のシステムユーザーに戻るには、exit
コマンドを実行します。
- exit
Postgresプロンプトに接続する別の方法は、sudo
を使用してpostgresアカウントとしてpsql
コマンドを直接実行することです。
- sudo -u postgres psql
これにより、中間のbash
シェルを介さずに、Postgresに直接ログインできます。
ここでも、以下を実行してインタラクティブなPostgresセッションを終了できます。
- \q
ステップ3—新しい役割を作成する
postgres アカウントとしてログインしている場合は、次のコマンドを実行して新しい役割を作成できます。
- createuser --interactive
代わりに、通常のアカウントから切り替えずに各コマンドにsudo
を使用する場合は、次のコマンドを実行します。
- sudo -u postgres createuser --interactive
いずれにせよ、スクリプトはいくつかの選択肢を表示し、応答に基づいて正しいPostgresコマンドを実行して、指定したユーザーを作成します。
OutputEnter 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
権限を持つroot 以外のアカウントから行う必要があります(つまり、 postgres ユーザーとしてログインしていません)。
- sudo adduser sammy
この新しいアカウントが利用可能になったら、次のコマンドを実行して、データベースに切り替えて接続できます。
- sudo -i -u sammy
- psql
または、これをインラインで実行できます。
- sudo -u sammy psql
このコマンドは、すべてのコンポーネントが適切に構成されていることを前提として、自動的にログインします。
ユーザーが別のデータベースに接続するようにする場合は、次のようにデータベースを指定することで接続できます。
- psql -d postgres
ログインすると、次のコマンドを実行して現在の接続情報を確認できます。
- \conninfo
OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
結論
これで、Ubuntu20.04サーバーでPostgreSQLがセットアップされました。 Postgresとその使用方法について詳しく知りたい場合は、次のガイドを確認することをお勧めします。