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-ベース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 Exclusive = postgresql *
[updates]
セクションの下部に同じ行を追加して、yumがデフォルトのリポジトリからpostgresを更新しないようにします。
[更新]name=CentOS-$releasever-更新mirrorlist=http://mirrorlist.centos.org/?release = $ releasever&arch = $ basearch&repo = updates#baseurl = http://mirror.centos.org/centos/$releasever / updateds / $ basearch / gpgcheck = 1 gpgkey = file:/// etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6 Exclusive = 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ルールの設定によって制御できます。
psql
と呼ばれるインターフェースを介してpostgresデータベースソフトウェアと対話します。 データを操作および照会できるプロンプトが表示されます。
今のところ、次のようにpostgresユーザーにログインします。
su - postgres
プロンプトが変わります。 これで、次のように入力して、ユーザー名に一致するデータベースに接続できます。
psql
プロンプトが再び変更され、今回はpostgresデータベースを操作していることを示します。
このインターフェースを終了する必要がある場合は、いつでも次のように入力できます。
\q
その後、rootユーザーシェルに戻るには、次のように入力します。
exit
いくつかの役立つpsqlコマンド
現在の環境を把握するのに役立ついくつかのコマンドを次に示します。
- ?:ここにリストされていないものを含むpsqlコマンドの完全なリストを取得します。
- \ h :SQLコマンドのヘルプを取得します。 これに続いて特定のコマンドを実行すると、構文のヘルプを取得できます。
- \ q :psqlプログラムを終了し、Linuxプロンプトを終了します。
- \ d :現在のデータベースで使用可能なテーブル、ビュー、およびシーケンスを一覧表示します。
- \ du :利用可能な役割を一覧表示します
- \ dp :リストアクセス権限
- \ dt :テーブルを一覧表示します
- \ l :データベースを一覧表示します
- \ c :別のデータベースに接続します。 これにデータベース名を続けます。
- \ password :次のユーザー名のパスワードを変更します。
- \ conninfo :現在のデータベースと接続に関する情報を取得します。
Postgresテーブルを作成する
次の構文を使用して、postgresでテーブルを作成できます。
CREATE TABLE new_table_name ( table_column_title TYPE_OF_DATA column_constraints 、 next_column_title TYPE_OF_DATA column_constraints 、 table_constraint table_constraint ) INHERITS 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
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を保護する方法。