開発者ドキュメント

CentOS6にPostgreSQLをインストールして使用する方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照:このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

次のDigitalOceanチュートリアルは、CentOS7サーバーへのPostgreSQLのインストールの概要を示しているので興味深いかもしれません。

序章


一般に「postgres」と呼ばれるPostgreSQLは、SQLクエリ言語を使用してデータを操作する一般的なデータベース管理システムです。

このガイドでは、CentOSVPSにpostgresをインストールして使用する方法について説明します。

PostgreSQLのインストール方法


CentOSにはデフォルトのリポジトリ内にpostgresパッケージが含まれていますが、postgresプロジェクト自体から入手可能なパッケージを使用します。

これにより、ソースからインストールしなくても、ソフトウェアの最新バージョンにアクセスできるようになります。

CentOSPostgresパッケージを除外する


postgresをインストールする前に、プロジェクトのWebサイトから最新バージョンを取得するために、CentOSバージョンのpostgresを除外する必要があります。

CentOSリポジトリ設定ファイルをテキストエディタで開きます。

nano /etc/yum.repos.d/CentOS-Base.repo

の下部に [base] セクションに、postgresパッケージを除外する行を追加します。

 [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 exclude=postgresql* 

の下部に同じ行を追加します [updates] yumがデフォルトのリポジトリからpostgresを更新しないようにするセクション:

 [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 exclude=postgresql* 

Postgresリポジトリを追加する


さて、postgresパッケージの相互作用のためにデフォルトのリポジトリを気にしないようにyumに指示しました。

今、代替手段を提供する必要があります。 postgresプロジェクトのWebサイトで提供されているパッケージを使用します。

サイトにアクセスして、CentOSバージョンで利用可能なpostgresの最新バージョンを見つけてください。

最新バージョンのpostgresとお使いのバージョンのCentOSに一致するリンクをControlキーを押しながらクリックまたは右クリックします。 「リンクアドレスのコピー」または同様のオプションを選択します。

ドロップレットセッションに戻り、ホームディレクトリに移動します。 タイプ curl -O 次に、ダウンロードリンクを貼り付けます。

 cd〜curl -O  http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm

次のコマンドを入力して、ダウンロードしたパッケージをインストールします。

rpm -ivh pgdg*

これにより、システムはプロジェクトのWebサイトからpostgresパッケージをプルできるようになります。

これを実行して、最新バージョンを取得できます。 これらのパッケージにはバージョン番号が含まれているため、使用されているバージョンを確認するために検索する必要があります。

yum list postgres*

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.linux.duke.edu
 * extras: mirror.linux.duke.edu
 * updates: mirrors.kernel.org
Installed Packages
postgresql93.x86_64                  9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-libs.x86_64             9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-server.x86_64           9.3.1-1PGDG.rhel6        @pgdg93
Available Packages
postgresql93-contrib.x86_64          9.3.1-1PGDG.rhel6        pgdg93 
postgresql93-debuginfo.x86_64        9.3.1-1PGDG.rhel6        pgdg93

この場合、すべてのパッケージにバージョン9.3の「93」が含まれていることがわかります。 「-server」パッケージをダウンロードします。

yum install postgresql93-server

このガイドの残りの部分では、「93」をシステムの現在のバージョンのpostgresに変更します。

データベース環境を初期化する


次のように入力して、データベース環境を初期化できます。

service postgresql-9.3 initdb

次に、起動時に起動するように構成し、ソフトウェアを起動します。

chkconfig postgresql-9.3 on
service postgresql-9.3 start

これで、postgresの使用を開始する準備が整いました。

Postgresデータベースにログインする方法


デフォルトでは、postgresはユーザーとデータベースを作成します postgres.

デフォルトのセキュリティスキームでは、postgresユーザーはアクセスが必要なユーザーだけがアクセスできると想定しています。 これは、sudoルールの設定によって制御できます。

と呼ばれるインターフェースを介してpostgresデータベースソフトウェアと対話します psql. データを操作および照会できるプロンプトが表示されます。

今のところ、次のようにpostgresユーザーにログインします。

su - postgres

プロンプトが変わります。 これで、次のように入力して、ユーザー名に一致するデータベースに接続できます。

psql

プロンプトが再び変更され、今回はpostgresデータベースを操作していることを示します。

このインターフェースを終了する必要がある場合は、いつでも次のように入力できます。

\q

その後、rootユーザーシェルに戻るには、次のように入力します。

exit

いくつかの役立つpsqlコマンド


現在の環境を把握するのに役立ついくつかのコマンドを次に示します。

Postgresテーブルを作成する


次の構文を使用して、postgresでテーブルを作成できます。

CREATE TABLE new_table_nametable_column_title TYPE_OF_DATA column_constraintsnext_column_title TYPE_OF_DATA column_constraintstable_constraint table_constraintINHERITS previous_table_to_inherit_from;

アイスキャンデーの品種とその情報を保存するために、「アイスキャンデー」というテーブルを作成します。

CREATE TABLE popsicles (
    pop_id serial PRIMARY KEY,
    flavor varchar (50) NOT NULL,
    amount int NOT NULL,
    size varchar (10) check (size in ('small', 'normal', 'large'))
);

これで、 \dt テーブルを表示するコマンド:

\dt

           List of relations
 Schema |   Name    | Type  |  Owner   
--------+-----------+-------+----------
 public | popsicles | table | postgres
(1 row)

定義した列とデータ構造を確認するには、次のコマンドを入力します。

\d popsicles

                                  Table "public.popsicles"
 Column |         Type          |                         Modifiers  
                        
--------+-----------------------+------------------------------------
------------------------
 pop_id | integer               | not null default nextval('popsicles
_pop_id_seq'::regclass)
 flavor | character varying(50) | not null
 amount | integer               | not null
 size   | character varying(10) | 
 . . .

Postgresテーブルにデータを挿入する


これでデータベースにテーブルができましたが、まだデータがありません。 を使用してデータを入力できます insert 指図。

入力します INSERT INTO その後にテーブル名が続きます。 次に、括弧のセット内に列名のコンマ区切りリストを入力します。 次に入力します VALUESの後に、列名に対応する値のコンマ区切りリストを含む2番目の括弧のセットが続きます。

今すぐ試してみましょう。 テーブルにいくつかのブドウのアイスキャンディーを挿入します。

INSERT INTO popsicles (flavor, amount, size) VALUES ('grape', 10, 'normal');

INSERT 0 1

The INSERT 0 1 コマンドが正常に受け入れられたことを示します。 このコマンドについて注意すべき点は、値リスト内の単語が一重引用符(’)の中にあり、コマンドがセミコロン(;)で終わっていることです。 これらの点は両方とも覚えておくことが重要です。

もう1つ注意すべき点は、 pop_id 桁。 これは、主キーとして定義したためです。 この列にはエントリごとに一意の値が必要であるため、postgresは作成する各レコードに次に使用可能な値を自動的に割り当てます。

より有用なテーブルを作成するために、さらにいくつかのデータを入力してみましょう。

INSERT INTO popsicles (flavor, amount, size) VALUES ('orange', 8, 'small');
INSERT INTO popsicles (flavor, amount, size) VALUES ('fudge', 20, 'large');
INSERT INTO popsicles (flavor, amount, size) VALUES ('eclair', 14, 'normal');
INSERT INTO popsicles (flavor, amount, size) VALUES ('rainbow', 4, 'small');

思い出してください。テーブルを作成したときに、「サイズ」列の許容値を定義しました。 Postgresは、値が「小さい」、「通常」、または「大きい」のいずれかであることを確認します。 別の値を提供しようとするとどうなりますか?:

INSERT INTO popsicles (flavor, amount, size) VALUES ('lime', 6, 'huge');

ERROR:  new row for relation "popsicles" violates check constraint "popsicles_size_check"
DETAIL:  Failing row contains (6, lime, 6, huge).

ご覧のとおり、postgresは正しいデータを入力したことを検証しました。 サイズに定義した値の1つがなかったため、最新のアイスキャンディーを拒否しました。

Postgresテーブルからデータを選択


次のコマンドを使用して、新しいテーブルでデータをクエリできます。 select 指図。 selectコマンドは、指定された基準に一致するテーブルからデータを返します。

テーブルからすべての情報を返すために、アスタリスク(*)を使用できます。これは、「すべてに一致する」ことを意味する特別な記号です。

SELECT * FROM popsicles;

 pop_id | flavor  | amount |  size  
--------+---------+--------+--------
      1 | grape   |     10 | normal
      2 | orange  |      8 | small
      3 | fudge   |     20 | large
      4 | eclair  |     14 | normal
      5 | rainbow |      4 | small
(5 rows)

アスタリスクを必要な列に置き換えることで、列で選択できます。

SELECT flavor, amount FROM popsicles;

 flavor  | amount 
---------+--------
 grape   |     10
 orange  |      8
 fudge   |     20
 eclair  |     14
 rainbow |      4
(5 rows)

特定の結果のみを表示するようにフィルタリングする場合は、 where 最後にフィルター:

SELECT * FROM popsicles WHERE amount <= 10;

 pop_id | flavor  | amount |  size  
--------+---------+--------+--------
      1 | grape   |     10 | normal
      2 | orange  |      8 | small
      5 | rainbow |      4 | small
(3 rows)

結論


これで、postgresがシステムにインストールされ、その基本的な使用法を適切に処理できるようになります。

postgresを扱うときに学ぶべきことは他にもたくさんあります。 他の記事を調べて、テーブルの管理方法クエリの作成方法権限の管理方法、postgresのバックアップ方法[ X170X]、およびpostgresを保護する方法。

ジャスティン・エリングウッド
モバイルバージョンを終了