Manager, Developer Education
PostgreSQL、またはPostgresは、SQLクエリ言語の実装を提供するリレーショナルデータベース管理システムです。標準に準拠し、信頼できるトランザクションや読み取りロックなしの同時実行性など、多くの高度な機能を備えています。
このガイドは、PostgreSQLのインストールから新しいユーザーとデータベースのセットアップまで、Ubuntu 20.04サーバーにPostgresを手早く立ち上げ、実行する方法を示します。 PostgreSQLデータベースのインストールと管理に関するより詳細なチュートリアルについては、Ubuntu 20.04にPostgreSQLをインストールして使用する方法を参照してください。
このチュートリアルを実行するには、ガイドUbuntu 20.04の初期サーバーのセットアップに従って設定したUbuntu 20.04サーバー1台が必要です。この前提条件となるチュートリアルを完了すると、サーバーにはsudo権限と基本的なファイアウォールを備えたroot以外のユーザーがあるはずです。
PostgreSQLをインストールするには、まず、サーバーのローカルパッケージインデックスを更新します。
- sudo apt update
その後、追加のユーティリティと機能をいくつか追加する-contrib
パッケージとともにPostgresパッケージをインストールします。
- sudo apt install postgresql postgresql-contrib
デフォルトでは、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
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
Postgres認証システムがデフォルトでもう1つ前提とするのは、ログインに使用されるすべてのロールについて、そのロールにはアクセス可能な同じ名前のデータベースがある、ということです。
つまり、前のセクションで作成したユーザーの名前がsammyの場合、そのロールはデフォルトで「sammy」とも呼ばれるデータベースへの接続を試行します。 createdb
コマンドで適切なデータベースを作成できます。
postgres アカウントとしてログインしている場合、次のように入力します。
- createdb sammy
代わりに、通常のアカウントから切り替えずに各コマンドにsudo
を使用する場合は、次のように入力します。
- sudo -u postgres createdb sammy
ident
ベースの認証でログインするには、Postgresロール、データベースと同じ名前のLinuxユーザーが必要です。
名前の一致するLinuxユーザーがいなければ、adduser
コマンドで作成します。sudo
権限(つまり、postgres ユーザーとしてログインしていない)を持つroot以外のアカウントからこれを行う必要があります。
- 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".
これで、Ubuntu 20.04サーバーでPostgreSQLがセットアップされました。Postgresやその使用方法の詳細については、次のガイドを参照してください。
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
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!