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


ある[ PostgreSQL の( Postgres )は、オープンソース、強力な、高度な、高性能で安定したリレーショナルドキュメントデータベースシステムです。安全なデータの保存と管理のための多数の機能と相まって、SQL言語を使用し強化します。

高いデータ整合性を確保しながら、大規模で複雑な大量のデータを処理し、エンタープライズレベルおよびフォールトトレラントな環境を設定するための効率的で信頼性があり、スケーラブルです。 Postgresはまた、インデックスなどの機能が非常に拡張可能であり、APIが付属しているため、データストレージの課題を解決するための独自のソリューションを開発できます。

この記事では、 Ubuntu 18.04 サーバーに PostgreSQL をインストールする方法(古いUbuntuリリースでも動作します)を説明し、それを使用するための基本的な方法をいくつか説明します。

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

まず、リポジトリ設定を保存するファイル /etc/apt/sources.list.d/pgdg.list を作成してから、リポジトリキーをシステムにインポートし、システムパッケージリストを更新してPostgresパッケージをインストールします以下のコマンドを使用してください。

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ sudo apt install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install postgresql-10 pgadmin4 

postgres がインストールされると、データベースサービスが自動的に開始されます。次のコマンドを入力して確認できます。

$ sudo systemctl status postgresql.service

PostgreSQLの役割とデータベースの使い方

postgres では、クライアント認証は /etc/postgresql/10/main/pg_hba.conf 設定ファイルによって制御されます。データベース管理者のデフォルトの認証方法は“ peer” です。これは、オペレーティングシステムからクライアントのオペレーティングシステムのユーザー名を取得し、要求されたデータベースユーザー名と一致するかどうかを確認します。 (以下のスクリーンショットに示すように)。

インストールプロセス中に、パスワードなしで postgres というシステムユーザーアカウントが作成されました。これもデータベース管理者のデフォルトのユーザー名です。

$ sudo vim /etc/postgresql/10/main/pg_hba.conf

また、 postgres の下では、データベースアクセス許可の管理はロールによって行われます。ロールは、ロールの設定方法に応じて、データベースユーザー、またはデータベースユーザーのグループと見なすことができます。

デフォルトの役割も postgres です。重要なことに、データベースの役割は概念的にはオペレーティングシステムのユーザーとは完全には無関係ですが、実際にはそれらは分離していない可能性があります(たとえば、クライアント認証に関して)。

重要なことに、ロールはデータベースオブジェクトを所有することができ、それらのオブジェクトに対する特権を他のロールに割り当てて、誰がどのオブジェクトにアクセスできるかを制御できます。さらに、ある役割のメンバーシップを別の役割に付与することも可能です。

デフォルトのpostgresロールとは別に、暗号化パスワードを使用してそれらに割り当てられたデータベースを管理するように他のロールを設定するには、行をに変更する必要があります。

Then restart the postgresql service to apply the recent changes.
$ sudo systemctl restart postgresql

UbuntuでPostgreSQLを使用する方法

すべての設定が完了したら、次のコマンドでpostgresシステムアカウントにアクセスできます。 -i フラグは、ターゲットユーザーのパスワードデータベースエントリで指定されているシェルを sudo に実行させます。ログインシェル

$ sudo -i -u postgres 
$ psql		#to launch the postgres shell program  
postgres=#

最初にpostgresユーザーアカウントにアクセスせずにpostgresシェルに直接アクセスするには、次のコマンドを実行します。

$ sudo -i -u postgres psql

次のコマンドを入力して、 postgres を終了または終了できます。

postgres=# \q

次のコマンドを使用して新しいユーザーロールを作成します。

postgres=# CREATE ROLE tecmint;

LOGIN 属性を持つロールを作成するには、次のコマンドを使用します(LOGIN属性を持つロールはデータベースユーザーと同じと見なすことができます)。

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

パスワードを使用してロールを作成することもできます。これは、データベースへの接続時にユーザーに暗号化パスワードの入力を求めるようにクライアント認証方法を設定した場合に便利です。

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

既存のユーザーロールを一覧表示するには、これらのコマンドのいずれかを使用します。

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

既存のユーザーロールを削除するには、表示されているように DROP ROLE コマンドを使用します。

postgres=# DROP ROLE tecmint;

特定の名前でロールを作成したら(たとえば tecmint ユーザー)、表示されているようにそのロールによって管理されるデータベース(ロールと同じ名前)を作成できます。

postgres=# CREATE DATABASE tecmint;

データベースを管理するには tecmint tecmint ロールとして postgres シェルにアクセスし、次のようにパスワードを入力します。

$ sudo -i -u tecmint psql

表の作成はとても簡単です。示されているように、 TecMint.com 作者に関する情報を格納する作成者というテスト表を作成します。

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

テーブルを作成したら、次のようにしてテーブルにデータを追加します。

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

テーブルに保存されているデータを表示するには、 SELECT コマンドを実行します。

tecmint=> SELECT * FROM authors;

次のコマンドで現在のデータベース内のすべてのテーブルを一覧表示できます。

tecmint=>\dt

現在のデータベースのテーブルを削除するには、 DROP コマンドを使用します。

tecmint=> DROP TABLE authors;

すべてのデータベースを一覧表示するには、次のいずれかのコマンドを使用します。

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

データベースを削除する場合は、たとえば DROP コマンドを使用します。

tecmint=>DROP DATABASE tecmint;

次のコマンドを使用して、あるデータベースから別のデータベースに簡単に切り替えることもできます。

tecmint=>\connect database_name

詳細はPostgreSQL 10.4 Documentationを参照してください。

今のところそれだ!この記事では、PostgreSQLデータベース管理システムをUbuntu 18.04にインストールして使用する方法を説明しました。あなたは私達にあなたの質問や考えをコメントで送ることができます。