ウェブサイト検索

CentOSにPostgreSQLをインストールし、構成する方法


CentOSでデータベースを管理するより良い方法を探していますか?ここでは、あなたのマシンにPostgreSQLをインストールして設定する方法を紹介します。

PostgreSQLは、LinuxとWindowsの両方のマシンで動作する堅牢で高いスケーラビリティを持つデータベースシステムです。このエンタープライズレベルのソフトウェアは、アプリケーションを作成するための優れた信頼性とデータ整合性を提供します。

PostgreSQLは、単一のマシンから大規模なデータウェアハウスまで、さまざまなワークロードを処理できる多用途なソフトウェアです。トランザクションのACID特性、更新可能なビュー、外部キー、クロスプラットフォーム統合などの機能を提供しています。

CentOSにPostgreSQLをインストールする方法

CentOSは少し異なる動作をし、システムをブートした直後にrootアクセスはありません。rootユーザーとしてログインするには、su コマンドを使用します。

su

システムは、すべての管理者権限を持つスーパーユーザーとしてログインします。

ステップ1: 事前にインストールされたパッケージを更新およびアップグレードする

次のステップの一部として、CentOS内の既存のパッケージを更新およびアップグレードする必要があります。これを行うには、ターミナルで次のコマンドを実行してください:

sudo yum check-update

出力 :

次のコマンドをターミナルに入力して、リストされたすべてのパッケージをアップグレードします:

sudo yum update

パッケージをアップグレードしたら、システムを再起動する必要があります。次のコマンドを使用してください:

sudo reboot

システムは新しく更新されたパッケージで準備が整いました。CentOSマシンにPostgreSQLをインストールする時が来ました。

ステップ2: 既存のデフォルトバージョンがあるか確認する

新しいインストールを行う前に、利用可能なPostgreSQLのデフォルトバージョンを確認することが重要です。

dnf module list postgresql

デフォルトでは、インストールを進める場合、インストールコマンドはPostgreSQLバージョン10をインストールします。

このガイドを書いている時点でバージョン13が利用可能であるため、デフォルトのインストールを制限し、最新のPostgreSQLを有効にするために以下のコマンドを使用します。

sudo dnf module enable postgresql:13

ステップ3: PostgreSQLサーバーパッケージをインストールする

前述のコマンドを使用してデフォルトのバージョンを変更した後は、PostgreSQLサーバーおよびクライアントパッケージをインストールする時です。

sudo dnf install postgresql-server

サーバーをインストールしたら、PostgreSQLデータベースを初期化する必要があります。初期化するには、次のコマンドを実行してください:

postgresql-setup --initdb

初期化後、PostgreSQLサービスを開始します。システム起動時に自動的に有効にするには、以下のコマンドを使用してください:

systemctl enable postgresql
systemctl start postgresql

PostgreSQLサービスの状態を確認するには、以下のコマンドを実行します:

systemctl status postgresql

出力に「アクティブ」と表示されている場合、サービスは稼働中です。

ステップ4:PostgreSQLデータベースの設定

インストール後は、PostgreSQLデータベースの設定を行うことをお勧めします。アカウントを保護するために、passwdユーティリティを使用してpostgresシステムユーザーアカウントのパスワードを作成してください。

passwd postgres

出力 :

システムはあなたにパスワードを2回入力するように求めます。両方の回で正しいパスワードを入力するようにしてください。

ユーザーアカウントのパスワードを設定した後、suを使用してpostgresアカウントにログインします:

su - postgres

ステップ5:新しいユーザー役割の作成

PostgreSQLの使用は一人のユーザーに限らないため、既存のリストに他のユーザーを追加する自由があります。

createuser コマンドを --interactive フラグと共に使用して、追加のユーザーを追加します。また、設定したいアクセス種類を指定してください。postgres アカウントでログインしている場合は、次のように入力します:

createuser --interactive

システムアカウントに頻繁に移動することに興味がない場合は、sudoコマンドを使ってユーザーを追加するオプションがあります。

sudo -u postgres createuser --interactive

どちらのシナリオでも、システムは追加する役割名と、この新しく作成されたユーザーのアクセス形式を要求します。スーパーユーザーの役割タイプについてyとnのいずれかを選択してください。

追加のフラグを確認するには、常にcreateuserコマンドのマニュアルページを参照できます。

man createuser

PostgreSQLを使用して新しいデータベースを作成する方法

あなたのマシンでPostgreSQLを設定したので、新しいデータベースを作成し、新しいテーブルを追加する時が来ました。

新しいロールでPostgreSQLプロンプトにアクセスする

ユーザーを追加したら、当然のことながらPostgreSQLを有効に活用したいと思うでしょう。しかし、その前に、PostgreSQLのロールとデータベースと同じ名前のユーザーを作成する必要があります。

そのようなユーザーIDが利用できない場合は、adduser コマンドを使用してtestという名前の新しいユーザーを作成してください。

sudo adduser test

-i と -u フラグを使用して新しいユーザーとしてログインします。

sudo -i -u test

新しいデータベースの作成

PostgreSQL内に新しいデータベースを作成するには、次のコマンドを使用します:

createdb databasename

管理コマンドを発行するには、postgresシステムユーザーとしてログインしている必要がありますのでご注意ください。

データベース内に新しいテーブルを作成する

新しいテーブルを作成してデータを保存しましょう。新しいテーブルにフィールドを追加する基本的な構文は非常に簡単です。

CREATE TABLE table_name (
column_name1 col_type (field_length),
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);

...ここでtable_nameはユーザーによって設定された希望の名前であり、column_name1、column_name2などは列名、col_typeは列の型、field_lengthはデータ構造のサイズであり、値をより堅牢にするためのものです。

例えば、次の列を持つホテルテーブルを作成できます:

CREATE TABLE hotel (
hotel_id serial PRIMARY KEY,
star varchar (50) NOT NULL,
paint varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
date date)
;

..テーブル名はホテルで、カラムはhotel_id、star、paint、location、dateそれぞれの長さとカラム制約があります。

データベースに値を追加する

テーブル構造が準備できたら、既存のテーブルにデータを追加できます。データを追加するためには、次の形式でINSERT INTO文を使用します:

INSERT INTO table (column_name1, column_name2, column_name3) VALUES ('value1', 'value2', 'value3');

例えば、上記で作成したホテルテーブルにデータの行を追加します。

INSERT INTO hotel (hotel, star, location, install_date) VALUES ('Plaza', 'Five', 'northwest', '2018-08-16')

CentOSでのPostgreSQLの構成

PostgreSQLを設定するには、正しい方法でインストールするのが最適です。適切な設定が整っていれば、PostgreSQLを簡単にインストールし、システム内で効率的に使用することができます。

CentOSの他にも、Ubuntuなどの他のLinuxディストリビューションでPostgreSQLを設定することもできます。

関連記事: