Tutorial

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

Published on October 26, 2020
Default avatar

By Mark Drake

Manager, Developer Education

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

はじめに

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をインストールするには、まず、サーバーのローカルパッケージインデックスを更新します。

  1. sudo apt update

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

  1. sudo apt install postgresql postgresql-contrib

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

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

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

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

  1. sudo -i -u postgres

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

  1. psql

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

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

  1. \q

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

  1. exit

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

  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権限(つまり、postgres ユーザーとしてログインしていない)を持つroot以外のアカウントからこれを行う必要があります。

  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".

まとめ

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel