LinuxでPostgreSQLを構築する方法を解説

※ この記事にはアフィリエイトリンクが含まれます

データベース管理システムとして高い信頼性と柔軟性を誇るPostgreSQL(ポストグレスキューエル)。その多機能性やオープンソースという特性から、個人プロジェクトから企業の大規模システムまで幅広く利用されています。本記事では、Linux環境においてPostgreSQLをインストールし、基本的な設定を行い、動作確認をするまでの手順を詳しく解説します。

Linux環境でのPostgreSQL構築は、学習を進める上で非常に実用的なスキルです。一緒に進めながら、PostgreSQLの基本的な使い方をマスターしましょう!

PostgreSQLとは

PostgreSQL(ポストグレスキューエル)は、オープンソースで提供されているリレーショナルデータベース管理システム(RDBMS)です。現在では世界中の開発者や企業によって広く利用されています。

PostgreSQLの主な特徴

オープンソース
完全に無料で利用可能で、商用ライセンスに縛られずに柔軟に使用できます。

標準SQL準拠
ANSI/ISO SQLの標準を高いレベルでサポートしており、他のデータベースからの移行もスムーズです。

高い信頼性
データの整合性を保証するためのACID特性(Atomicity, Consistency, Isolation, Durability)を備えています。

拡張性
ユーザー定義の型や関数、拡張モジュール(例: PostGIS)を簡単に追加することができます。

マルチプラットフォーム対応
Linux、Windows、macOSなど主要なOS上で動作します。

PostgreSQLは、信頼性と柔軟性を兼ね備えたデータベースとして、多くのプロジェクトで選ばれています。

LinuxにPostgreSQLを構築する前に確認すること

PostgreSQLをLinuxにインストールする前に、いくつかの準備をしておく必要があります。このセクションでは、必要な環境や事前確認事項を解説します。

パッケージマネージャの確認

Linuxのディストリビューションによって、使用するパッケージマネージャが異なります。この記事では、CentOS系を中心に解説していきます。

  • Ubuntu/Debian系
    APTを使用。
  • CentOS/RHEL系
    YUMまたはDNFを使用。

以下のコマンドで、パッケージマネージャが正常に動作していることを確認してください。

sudo apt update  # Ubuntu/Debian系
sudo yum update  # CentOS/RHEL系

PostgreSQLのバージョン選定

PostgreSQLの公式サイトでは、最新の安定版とサポートされている過去のバージョンが提供されています。PostgreSQL公式ダウンロードページを参考に、プロジェクトに適したバージョンを選んでください。

ポイント

  • 最新の機能が必要であれば最新バージョンを選択。
  • 長期サポートが必要な場合は、LTS(Long Term Support)バージョンを検討。

サーバーのタイムゾーン設定

データベースのタイムスタンプやログの管理を正確に行うために、サーバーのタイムゾーンを確認または設定します。タイムゾーンを日本に設定するには以下のように書きます。

sudo timedatectl set-timezone Asia/Tokyo

PostgreSQLインストール手順

ここからは、LinuxでPostgreSQLをインストールする具体的な手順を解説します。この記事では、主にCentOSを例に説明します。

リポジトリの追加

PostgreSQLの公式リポジトリを設定します。この手順により、標準のパッケージマネージャから最新バージョンのPostgreSQLをインストールできるようになります。

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum -y module disable postgresql
  • pgdg-redhat-repo はPostgreSQL公式リポジトリのパッケージです。
  • 標準モジュール(OSデフォルトの古いPostgreSQLパッケージ)を無効化するために、module disableを実行します。

PostgreSQLのインストール

公式リポジトリを追加した後、以下のコマンドでPostgreSQLをインストールします。

sudo yum install -y postgresql15 postgresql15-server
  • postgresql15 はPostgreSQL 15のクライアントツールを含むパッケージ。
  • postgresql15-server はデータベースサーバーを含むパッケージです。

初期化

PostgreSQLのデータディレクトリを初期化します。この操作により、データベースの設定が完了します。

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

成功メッセージが表示されれば、初期化が正常に完了しています。

サービスの起動と有効化

PostgreSQLを起動し、システム起動時に自動的に開始されるように設定します。

sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

サービスの状態を確認して、正常に稼働していることを確認します。

sudo systemctl status postgresql-15

インストールの確認

以下のコマンドを実行して、PostgreSQLが正しくインストールされているか確認します。

psql --version

psql (PostgreSQL) 15.3

PostgreSQLの初期設定

PostgreSQLをインストールした後、実際に使用できる状態にするための初期設定を行います。ここでは、サービスの起動、基本的な設定、リモート接続の許可方法について解説します。

PostgreSQLデータベースの初期化

インストール時に自動初期化されていない場合、以下のコマンドでデータベースを初期化します。

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

このコマンドで、データディレクトリが初期化され、基本的な設定ファイルが生成されます。初期化後に、設定ファイル(postgresql.confpg_hb1.conf)が以下のディレクトリに保存されます。

/var/lib/pgsql/15/data/

初期パスワードの設定

デフォルトで作成されるPostgreSQLの管理者ユーザー(postgres)のパスワードを設定します。

まず、postgresユーザーとしてPostgreSQLにログインします。

sudo -u postgres psql

以下のSQLコマンドを実行してパスワードを変更します。

ALTER USER postgres PASSWORD '新しいパスワード';

設定後、\qでPostgreSQLコンソールを終了します。

リモート接続の許可

デフォルトでは、PostgreSQLはローカル接続のみ許可されています。リモートから接続できるよう設定を変更します。

設定ファイルの編集

1. pg_hba.conf を編集してリモートアクセスを許可します。

sudo vi /var/lib/pgsql/15/data/pg_hba.conf

次の行を追加または変更して、すべてのIPアドレスからのアクセスを許可(例:IPv4のみ)

host    all             all             0.0.0.0/0            md5

2. postgresql.conf を編集してサーバーがリモート接続できるように設定します。

sudo vi /var/lib/pgsql/15/data/postgresql.conf

次の行を探し、コメントを解除して* に変更します。

listen_addresses = '*'

設定を反映するためにサービスを再起動します。

sudo systemctl restart postgresql-15

ファイアウォールの設定

リモートからPostgreSQLに接続できるよう、ファイアウォールで5432番ポートを許可します。

sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload

設定が正しいか確認します。

sudo firewall-cmd --list-all

最後に動作確認

PostgreSQLが正しく動作しているか確認するため、データベースを作成し、クエリを実行します。

postgres ユーザーとして以下を実行します。

sudo -u postgres createdb testdb

作成したデータベースに接続し、サンプルクエリを実行します。

sudo -u postgres psql testdb

以下のSQLを入力してテーブルを作成し、データを挿入します。

CREATE TABLE test (id SERIAL PRIMARY KEY, name VARCHAR(50));
INSERT INTO test (name) VALUES ('Alice'), ('Bob');
SELECT * FROM test;

クエリの結果が表示されれば、動作確認は成功です。

まとめ

本記事では、Linux環境でPostgreSQLをインストールし、基本的な設定を行う方法を解説しました。PostgreSQLは、その堅牢性と柔軟性から、さまざまなプロジェクトで利用される非常に有用なツールです。この記事が、あなたの開発やデータ運用の第一歩となれば幸いです。今後の挑戦を応援しています!

PostgreSQLを効率よく学びたい方はUdemyがおすすめ

もっとわかりやすくPostgreSQLを学びたいという方には、Udemyがおすすめです。Udemyは、オンライン学習を手軽に始められる便利なプラットフォームで、初心者から上級者向けまで、様々なレベルのSQLコースがそろっています。ですので自身のスキルや目的にあったコースを選ぶことができます。

また、Udemyはコミュニティのサポートもしており、質問や情報交換も行えるため、学習を進めている中で浮かんだ疑問などを解消する手助けを受けることもできます。

IT資格の人気オンラインコース

Udemyは定期的に90%OFFなどの規模でセールを開催しているので、そのタイミングを狙うのもありでしょう。今までにセールが開催された時期をまとめました。

  • 季節ごとのセール
    年末年始や夏季、春季などの特別な時期に大規模なセールを実施
  • 祝日セール
    バレンタインデー、感謝祭、クリスマスなどの祝日にもセールを実施
すぐに役立つスキルを 身につけよう! セール開催中!

コメント