Debian8にPostgreSQL9.4をインストールして使用する方法
序章
リレーショナルデータベースは、多数のニーズに対応するデータ編成の基礎です。 オンラインショッピングからロケットの打ち上げまで、あらゆるものに電力を供給します。 両方とも由緒あるが、まだゲームに残っているデータベースはPostgreSQLです。 PostgreSQLはほとんどのSQL標準に準拠しており、ACIDトランザクションがあり、外部キーとビューをサポートしており、現在も活発に開発されています。
実行しているアプリケーションが安定性、パッケージ品質、および簡単な管理を必要とする場合、Debian 8(コードネーム「Jessie」)はLinuxディストリビューションの最良の候補の1つです。 他の「ディストリビューション」よりも少しゆっくりと移動しますが、その安定性と品質はよく知られています。 アプリケーションまたはサービスにデータベースが必要な場合、Debian8とPostgreSQLの組み合わせは町で最高の1つです。
この記事では、PostgreSQLを新しいDebian8Stableインスタンスにインストールして開始する方法を紹介します。
前提条件
まず、Debian8Stableシステムを稼働させることです。 Debian8を使用した初期サーバーセットアップの記事の指示に従うことができます。 このチュートリアルは、Debian 8StableDropletの準備ができていることを前提としています。
特に明記されていない限り、このチュートリアルのすべてのコマンドは、sudo権限を持つroot以外のユーザーとして実行する必要があります。 ユーザーを作成してsudo権限を付与する方法については、 Debian8を使用した初期サーバーセットアップを確認してください。
PostgreSQLのインストール
PostgreSQLをインストールする前に、aptパッケージリストを次のように更新して、Debianリポジトリから最新の情報を入手していることを確認してください。
sudo apt-get update
更新されているパッケージリストと次のメッセージが表示されます。
Reading package lists... Done.
postgresql
で始まるパッケージがいくつかあります。
postgresql-9.4
:PostgreSQLサーバーパッケージpostgresql-client-9.4
:PostgreSQLのクライアントpostgresql
:DebianハンドブックまたはDebian NewMaintainers'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はデフォルトで、一致するシステムアカウントによって要求される認証ロールで設定されています。 (これについての詳細は、 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) );
ご覧のとおり、テーブルに名前を付けてから、必要な列、列の種類、フィールドデータの最大長を定義します。 オプションで、各列にテーブル制約を追加することもできます。
Postgresでテーブルを作成および管理する方法について詳しくは、 クラウドサーバー上の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マニュアル
- パッケージのインストール
postgresql-doc
:sudo apt-get install postgresql-doc
README
ファイルは/usr/share/doc/postgresql-doc-9.4/tutorial/README
にインストールされています
PostgreSQLでサポートされているSQLコマンドの完全なリストについては、次のリンクをたどってください。
データベースのさまざまな機能を比較するには、以下を確認してください。
役割と権限の理解を深めるには、以下を参照してください。