前書き
リレーショナルデータベースは、多くのニーズに対応するデータ編成の基盤です。 オンラインショッピングからロケット打ち上げまで、あらゆるものを支えています。 由緒あるデータベースであるが、まだゲームに残っているのはPostgreSQLです。 PostgreSQLはSQL標準のほとんどに従い、ACIDトランザクションを持ち、外部キーとビューをサポートし、現在も活発に開発されています。
実行中のアプリケーションに安定性、パッケージ品質、および簡単な管理が必要な場合、Debian 8(コードネーム「Jessie」)はLinuxディストリビューションの最適な候補の1つです。 他の「distros」よりも少しゆっくり動きますが、その安定性と品質はよく認識されています。 アプリケーションやサービスにデータベースが必要な場合、Debian 8とPostgreSQLの組み合わせは町で最高のものの1つです。
この記事では、新しいDebian 8 StableインスタンスにPostgreSQLをインストールして開始する方法を示します。
前提条件
最初のことは、Debian 8 Stableシステムを稼働させることです。 Debian 8での初期サーバー設定の記事の手順に従ってください。 このチュートリアルでは、Debian 8 Stable Dropletの準備ができていることを前提としています。
特に断りのない限り、このチュートリアルのすべてのコマンドは、sudo特権を持つ非rootユーザーとして実行する必要があります。 ユーザーを作成してsudo権限を付与する方法については、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-8 [Debian 8での初期サーバー設定]をご覧ください。
PostgreSQLのインストール
PostgreSQLをインストールする前に、次のようにaptパッケージリストを更新して、Debianリポジトリから最新の情報を入手してください。
sudo apt-get update
パッケージリストが更新され、次のメッセージが表示されます。
Reading package lists... Done.
`+ postgresql`で始まるパッケージがいくつかあります。
-
+ postgresql-9.4 +
:PostgreSQLサーバーパッケージ -
+ postgresql-client-9.4 +
:PostgreSQLのクライアント -
+ postgresql +
:http://debian-handbook.info/browse/stable/sect.building-first-package.html[Debian Handbook]またはhttp://www.debianで説明されている「メタパッケージ」。 org / doc / manuals / maint-guide / [Debian New Maintainers 'Guide]
`+ postgresql-9.4 +`パッケージを直接インストールするには:
sudo apt-get install postgresql-9.4 postgresql-client-9.4
要求されたら、「+ Y +」と入力してパッケージをインストールします。 すべてがうまくいった場合、パッケージはリポジトリからダウンロードされインストールされます。
インストールの確認
PostgreSQLサーバーが正しくインストールされ、実行されていることを確認するには、コマンド「+ ps +」を使用できます。
# ps -ef | grep postgre
ターミナルに次のようなものが表示されるはずです。
postgres 32164 1 0 21:58 ? 00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/ postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164 0 21:58 ? 00:00:00 postgres: checkpointer process
postgres 32167 32164 0 21:58 ? 00:00:00 postgres: writer process
postgres 32168 32164 0 21:58 ? 00:00:00 postgres: wal writer process
postgres 32169 32164 0 21:58 ? 00:00:00 postgres: autovacuum launcher process
postgres 32170 32164 0 21:58 ? 00:00:00 postgres: stats collector process
成功! PostgreSQLが正常にインストールされ、実行されています。
PostgreSQLデータベースへのアクセス
Debianでは、PostgreSQLはデフォルトのユーザーとデフォルトのデータベースが両方とも「+ postgres 」と呼ばれる状態でインストールされます。 データベースに接続するには、最初にrootとしてログインした状態で次のコマンドを発行して ` postgres +`ユーザーに切り替える必要があります(sudoアクセスでは機能しません):
su - postgres
これで、 `+ postgres`としてログインするはずです。 PostgreSQLコンソールを起動するには、「+ psql +」と入力します。
psql
完了しました。 PostgreSQLコンソールにログインする必要があります。 次のプロンプトが表示されるはずです。
psql (9.4.2)
Type "help" for help.
postgres=#
psqlコンソールを終了するには、コマンド `+ \ q +`を使用します。
新しい役割の作成
デフォルトでは、Postgresは「ロール」と呼ばれる概念を使用して認証と承認を支援します。 これらはいくつかの点で通常のUnixスタイルのアカウントに似ていますが、PostgreSQLはユーザーとグループを区別せず、代わりに「ロール」というより柔軟な用語を好みます。
インストール時に、PostgreSQLは「ident」認証を使用するように設定されます。つまり、PostgreSQLロールを一致するUnix / Linuxシステムアカウントに関連付けます。 PostgreSQLロールが存在する場合、関連するLinuxシステムアカウントにログインすることでログインできます。
インストール手順により、デフォルトのPostgresロールに関連付けられたpostgresというユーザーアカウントが作成されました。
追加のロールを作成するには、 `+ createuser `コマンドを使用できます。 このコマンドは、PostgreSQLコンソール内ではなく、ユーザー ` postgres +`として発行する必要があることに注意してください。
createuser --interactive
これは基本的に、正しいPostgreSQLコマンドを呼び出して仕様に合ったユーザーを作成する対話型のシェルスクリプトです。 いくつかの質問があります:ロールの名前、スーパーユーザーであるかどうか、ロールが新しいデータベースを作成できるかどうか、ロールが新しいロールを作成できるかどうか。 `+ man +`ページには詳細情報があります:
man createuser
新しいデータベースの作成
PostgreSQLは、デフォルトで、一致するシステムアカウントによって要求される認証ロールでセットアップされます。 (これに関する詳細は、http://www.postgresql.org/docs/8.1/static/user-manag.html [postgresql.org]で入手できます)。 また、ロールが接続するための一致するデータベースが存在するという前提があります。 そのため、「+ test1 」というユーザーがいる場合、そのロールはデフォルトで「 test1 +」というデータベースに接続しようとします。
`+ postgres +`ユーザーとしてこのコマンドを呼び出すだけで適切なデータベースを作成できます:
createdb test1
新しいデータベース `+ test1 +`が作成されました。
新しいユーザーでPostgreSQLに接続する
`+ test1 `という名前のLinuxアカウントを持ち、それに対応するPostgreSQLの ` test1 `ロールを作成し、データベース ` test1 `を作成したとします。 Linuxのユーザーアカウントを ` test1 +`に変更するには:
su - test1
次に、コマンドを使用して、 + test1 +
PostgreSQLロールとして `+ test1 +`データベースに接続します。
psql
これで、 `+ postgres `ではなく、新しく作成されたユーザー ` test1 +`でPostgreSQLプロンプトが表示されます。
テーブルの作成と削除
PostgreSQLデータベースシステムへの接続方法がわかったところで、いくつかの基本的なタスクを完了する方法について説明します。
まず、データを保存するためのテーブルを作成しましょう。 遊具を説明するテーブルを作成しましょう。
このコマンドの基本的な構文は次のようなものです。
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
ご覧のように、テーブルに名前を付けてから、必要な列、列データ型、フィールドデータの最大長を定義します。 オプションで、各列にテーブル制約を追加することもできます。
https://www.digitalocean.com/community/tutorials/how-to-create-remove-manage-tables-in-postgresql-on-a-cloudでPostgresでテーブルを作成および管理する方法の詳細を学ぶことができます-server [クラウドサーバー上のPostgreSQLでテーブルを作成、削除、管理する方法]の記事。
この目的のために、次のような単純なテーブルを作成します。
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date
);
所有している機器の目録を作成する遊び場テーブルを作成しました。 これは、シリアルタイプの機器IDで始まります。 このデータ型は自動インクリメント整数です。 この列に主キーの制約を指定しました。つまり、値は一意であり、nullではない必要があります。
2列については、フィールド長を指定していません。 これは、一部の列タイプでは長さがタイプによって暗示されているため、長さを設定する必要がないためです。
次に、機器の種類と色の列を指定します。それぞれを空にすることはできません。 次に、場所の列を作成し、値が8つの可能な値のいずれかである必要がある制約を作成します。 最後の列は、機器を設置した日付を記録する日付列です。
テーブルを表示するには、psqlプロンプトでコマンド「+ \ dt +」を使用します。 結果は次のようになります
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | playground | table | postgres
ご覧のとおり、プレイグラウンドテーブルがあります。
テーブル内のデータの追加、クエリ、および削除
テーブルが作成されたので、そこにデータを挿入できます。
スライドとスイングを追加しましょう。 これを行うには、追加するテーブルを呼び出し、列に名前を付けてから、各列にデータを提供します。 スライドとスイングは次のように追加できます。
INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');
いくつかのことに気付くはずです。 最初に、列名を引用符で囲む必要はありませんが、入力する列値には引用符が必要であることに注意してください。
もう1つ注意すべきことは、 `+ equip_id +`カラムに値を入力しないことです。 これは、テーブルの新しい行が作成されるたびに、これが自動生成されるためです。
その後、次のように入力して、追加した情報を取得できます。
SELECT * FROM playground;
出力は次のようになります。
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
1 | slide | blue | south | 2014-04-28
2 | swing | yellow | northwest | 2010-08-16
ここで、「+ equip_id +」が正常に入力され、他のすべてのデータが正しく構成されていることがわかります。 スライドが壊れて遊び場から削除した場合、次のように入力してテーブルから行を削除することもできます。
DELETE FROM playground WHERE type = 'slide';
テーブルを再度クエリすると:
SELECT * FROM playground;
スライドがテーブルの一部ではなくなっていることがわかります。
equip_id | type | color | location | install_date
----------+-------+-------+----------+--------------
1 | slide | blue | south | 2014-04-28
便利なコマンド
以下に、現在の環境を把握するのに役立つコマンドをいくつか示します。
-
* \?*:ここにリストされていないものも含め、psqlコマンドの完全なリストを取得します。
-
* \ h *:SQLコマンドのヘルプを取得します。 特定のコマンドを使用してこれに従うと、構文のヘルプを取得できます。
-
* \ q *:psqlプログラムを終了し、Linuxプロンプトに戻ります。
-
* \ d *:現在のデータベースで使用可能なテーブル、ビュー、およびシーケンスを一覧表示します。
-
* \ du *:利用可能な役割を一覧表示する
-
* \ dp *:アクセス権限のリスト
-
* \ dt *:リスト表
-
* \ l *:データベースのリスト
-
* \ c *:別のデータベースに接続します。 これにデータベース名を続けます。
-
* \ password *:次のユーザー名のパスワードを変更します。
-
* \ conninfo *:現在のデータベースと接続に関する情報を取得します。
これらのコマンドを使用すると、PostgreSQLデータベース、テーブル、およびロールをすぐにナビゲートできるはずです。
結論
これで、Debianシステムで完全に機能するPostgreSQLデータベースが稼働しているはずです。 おめでとうございます。 ここから行くべきドキュメントがたくさんあります:
-
パッケージ
+ postgresql-doc +`のインストール: `+ sudo apt-get install postgresql-doc +
-
`+ / usr / share / doc / postgresql-doc-9.4 / tutorial / README `にインストールされた ` README +`ファイル
PostgreSQLでサポートされているSQLコマンドの完全なリストについては、次のリンクを参照してください。
データベースのさまざまな機能を比較するには、チェックアウトできます。
役割と権限のより良い理解については、以下を参照してください。
-
https://www.digitalocean.com/community/tutorials/how-to-use-roles-and-manage-grant-permissions-in-postgresql-on-a-vps—2 [役割を使用して付与を管理する方法VPSでのPostgreSQLの許可]