Ubuntu、CentOS、WindowsにPostgreSQLをインストールするにはどうすればいいですか?

公開: 2021-06-08

PostgreSQLは、人気のあるクロスプラットフォームのオープンソースオブジェクトリレーショナルデータベースシステムの1つであり、堅牢で高性能であり、強力なコミュニティで信頼性があります。

カリフォルニア大学バークレー校のPOSTGRESプロジェクトの一環として1986年にさかのぼり、コアプラットフォームで30年間の活発な開発を行っています。 長年にわたるその一貫したパフォーマンスは、その整合性、アーキテクチャ、および企業での使用に対する拡張性を証明しています。 これはACIDに準拠しており、人気のあるPostGIS地理空間データベースエクステンダーのような強力なアドオンをサポートします。

この記事では、一般的なプラットフォームへのPostgreSQLのインストールについて説明します。

それでは始めましょう。

Ubuntu

PostgreSQLは、Ubuntuのすべてのフレーバーとバージョンで使用できます。 Ubuntuのバージョンでデフォルトで利用可能であり、その存続期間中サポートされているバージョンをインストールして使用するか、PostgreSQLリポジトリを追加して同じものをインストールすることで特定のバージョンを使用するかを選択できます。 ここでは、両方のオプションについて説明します。

Ubuntuのリポジトリが提供するデフォルトでサポートされているバージョンを使用するには、次のコマンドを実行します。

 $ sudo apt-get update $ sudo apt-get -y install postgresql

PostgreSQLのアプトリポジトリはUbuntuのLTSの現在のバージョン、すなわち、サポート20.0418.0416.04 。 完全にはサポートされていない可能性がありますが、同じパッケージは、最も近いLTSバージョンを使用することで非LTSバージョンでも機能します。

PostgreSQL aptリポジトリを使用するには、次の手順に従います。

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

最新バージョンを参照するpostgresqlだけでなく、PostgreSQLリポジトリから特定のバージョンをインストールするには、 postgresql-12ように指定します。

 $ sudo apt-get -y install postgresql-12

リポジトリには、サードパーティのアドオンを含むさまざまなパッケージも含まれています。 たとえば、PostgreSQLのバージョン12で一般的に利用可能なパッケージには次のものが含まれます。

postgresql-client-12 クライアントライブラリとクライアントバイナリ
postgresql-12 コアデータベースサーバー
postgresql-contrib-9.x 追加で提供されるモジュール(バージョン10以降のpostgresql-xxパッケージの一部)
libpq-dev C言語フロントエンド開発用のライブラリとヘッダー
postgresql-server-dev-12 C言語バックエンド開発用のライブラリとヘッダー
pgadmin4 pgAdmin4グラフィカル管理ユーティリティ

インストールが完了したら、次のコマンドを使用してDBサービスのステータスを確認できます。

 $ sudo systemctl status postgresql.service

Ubuntuの場合、インストール後に、サービスを有効にして次のように実行する必要があります。

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

Ubuntuと同様に、RHEL / CentOSリポジトリにも特定のバージョンのPostgreSQLが含まれており、OSの存続期間を通じてサポートされます。 次を使用して同じものをインストールできます。

 $ sudo yum install -y postgresql-server

または、CentOS 8を使用している場合は、DNFを使用できます。

 $ sudo dnf install -y postgresql-server

インストール後に以下のコマンドを実行してDBを初期化し、PostgreSQLサービスを有効にして、開始します。

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

または、 PostgreSQL yumリポジトリから直接パッケージを使用するには、リポジトリを次のように追加する必要があります。

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

次に、この記事の執筆時点で最新の安定版リリースであるバージョン13などの特定のバージョンのPostgreSQLをインストールするには、次を使用します。

 $ sudo yum install -y postgresql13-server

yumリポジトリには、PostgreSQL用の追加パッケージも含まれています。そのうちのいくつかの重要なパッケージを以下に示します。

postgresql-クライアントライブラリとクライアントバイナリ
postgresql-server コアデータベースサーバー
postgresql-contrib 追加の付属モジュール
postgresql-devel C言語開発用のライブラリとヘッダー

インストール後に以下の手順を実行してDBを初期化し、PostgreSQLサービスを有効にして、開始します。

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

以下のコマンドを使用して、DBサービスのステータスを確認できます。

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

ウィンドウズ

Windowsの32ビットおよび64ビットのインストーラーは、こちらのPostgreSQLの公式サイトから入手できます。

  • 必要なバージョンとアーキテクチャに基づいて、該当するバイナリをダウンロードできます。

postgresql-ダウンロード

  • 利用可能な最新バージョンであるWindows64ビットプラットフォーム用のv13.3をダウンロードします。 ダウンロードが完了したら、インストーラーをダブルクリックして起動します。

postgresql-install-launch

  • [次へ]をクリックして続行します。

postgresql-install-location

  • [次へ]をクリックしてデフォルトのパスを続行するか、カスタムインストールパスを指定します。

  • デフォルトのコンポーネントを選択したままにして、「次へ」をクリックして続行できます。

postgresql-install-datadir

  • 次に、データディレクトリの場所を尋ねます。 別の専用ディスクまたはディレクトリが割り当てられていない限り、これをデフォルトのままにしておくことができます。 [次へ]をクリックして続行します。

postgresql-install-password

  • postgresユーザーに割り当てられる強力なパスワードを指定します。 完了したら、[次へ]をクリックします。

postgresql-install-port

  • ほとんどの場合、デフォルトのポート5432が適切です。 [次へ]をクリックして、次のページに移動します。

postgresql-install-locale

  • DBのロケールを選択し、[次へ]をクリックして続行します。

postgresql-install-confirmation

  • インストールウィザードで選択したすべての設定が一覧表示され、確認して確認できます。 変更が必要な場合は、戻って変更するか、[次へ]をクリックして次のページに進みます。

postgresql-install-confirmation-1

  • セットアップにより、インストールを続行する準備ができていることが示されます。 準備ができたら、[次へ]をクリックしてインストールを開始します。

postgresql-install-progress

  • インストールが完了するのを待ちます。 同じことの確認が表示されます。

postgresql-インストール-完了

  • 完了したら、 Stack Builderチェックを外し、[完了]をクリックしてインストールウィザードを終了します。 [スタート]メニューをクリックしてSQL Shell (psql)を検索し、そのアイコンをクリックしてpsqlシェルを開きます。

psql-スタートメニュー

  • SQL Shell (psql)が開き、接続の詳細を指定した後、PostgreSQLインスタンスと対話できます。 インストールウィザードでpostgresユーザーに指定されたパスワードを入力する必要があるパスワードを除いて、 Enterを押すだけで、すべての項目をデフォルトとして選択できます。 これにより、 postgres=#プロンプトが表示されます。

psql-sql-shell-windows

PostgreSQLに接続する

postgresユーザーは、インストール後に自動的に作成され、DBインスタンスへのsuperadminアクセス権があります。 Linuxでは、特権ユーザーとして、次のようにこのアカウントに切り替えることができます。

 $ sudo su - postgres

一度入ると、 postgresユーザーのパスワードを次のようにリセットできます。

 $ psql -c "alter user postgres with password '[email protected]'"

次に、 psqlてPostgreSQLプロンプトを次のように起動します。

 $ psql

これにより、PostgreSQLプロンプトが表示されます。

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

このプロンプトで、データベースを操作し、DB管理者またはユーザータスクを実行できます。 デモとして、以下の手順でDBとユーザーを作成し、新しいデータベースで作業するための特権を新しいユーザーに割り当てます。

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

次に、 \lコマンドを使用してDBを一覧表示できます。

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#

これで、次を使用してDBに簡単に接続できます。

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

概要

PostgreSQLは、その堅牢性、機能セット、およびスケーラビリティにより、企業の世界で広く採用されているデータベースの1つです。 習得は簡単で、SQL標準との互換性を確保しようとします。

PostgreSQLの公式サイトにチュートリアルがあります。