アンドロイド

CentOS 8にpostgresqlをインストールする方法

VNC Server Install in Linux | Remote Desktop Access | CentOS 8 / RHEL 8 | Tech Arkit

VNC Server Install in Linux | Remote Desktop Access | CentOS 8 / RHEL 8 | Tech Arkit

目次:

Anonim

PostgreSQLやPostgresはフォールトトレラントな環境や複雑なアプリケーションを構築することを可能にする多くの高度な機能を持つオープンソースの汎用オブジェクト・リレーショナル・データベース管理システムです。

このガイドでは、我々は、インストールアプリケーションがそれをサポートすることを確認するために、どのバージョンを選択する前にCentOSの8にPostgreSQLデータベースサーバをインストールする方法について説明します。

また、PostgreSQLデータベース管理の基本についても説明します。

前提条件

パッケージをインストールできるようにするには、rootまたはsudo特権を持つユーザーとしてログインする必要があります。

CentOS 8にPostgreSQLをインストールする

バージョン9.6および10.0:この記事を書いている時点で、標準のCentOSのリポジトリからインストール可能なPostgreSQLサーバの2つのバージョンがあります。

利用可能なPostgreSQLモジュールストリームを一覧表示するには、次のように入力します。

dnf module list postgresql

出力は、postgresqlモジュールが2つのストリームで利用可能であることを示しています。 各ストリームには、サーバーとクライアントの2つのプロファイルがあります。 プロファイルサーバーを使用するストリーム10がデフォルトです。

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. デフォルトのストリームをインストールするには、PostgreSQLサーバーバージョン10.0を入力します。

    sudo dnf install @postgresql:10

    PostgreSQLサーバーバージョン9.6をインストールするには、次のように入力します。

    sudo dnf install @postgresql:9.6

また、PostgreSQLデータベースのためのいくつかの追加機能を提供contribのパッケージをインストールすることもできます。

sudo dnf install postgresql-contrib

インストールが完了したら、次のコマンドでPostgreSQLデータベースを初期化します。

sudo postgresql-setup initdb

Initializing database… OK

PostgreSQLサービスを開始し、起動時に開始できるようにします。

sudo systemctl enable --now postgresql

使用 psql PostgreSQLデータベースサーバに接続してインストールを確認し、そのバージョンを印刷するためのツールを:

sudo -u postgres psql -c "SELECT version();"

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

PostgreSQLのロールと認証方法

PostgreSQLは、ロールの概念を使用してデータベースアクセス許可を処理します。 ロールは、データベースユーザーまたはデータベースユーザーのグループを表すことができます。

PostgreSQLは複数の認証方法をサポートしています。 最も一般的に使用される方法は次のとおりです。

  • トラスト-役割は長い間に定義された条件通りとして、パスワードなしで接続することができます pg_hba.conf 役割がパスワードを入力して接続することができます- met.Passwordです。 パスワードはとして保存することができ scram-sha-256 md5 、および password のみのTCP / IP接続上でサポート- (クリアテキスト).Ident。 これは、オプションのユーザー名mapping.Peerで、クライアントのオペレーティングシステムのユーザ名を取得することで動作します - のIdentと同じですが、それがローカル接続のみでサポートされています。

PostgreSQLのクライアント認証は、名前の設定ファイルで定義されて pg_hba.conf 。 デフォルトでは、ローカル接続のために、PostgreSQLは、ピアの認証方法を使用するように設定されています。

PostgreSQLサーバーをインストールすると、 postgres ユーザーが自動的に作成されます。 このユーザーは、PostgreSQLインスタンスのスーパーユーザーです。 これはMySQLのrootユーザーと同等です。

PostgreSQLサーバにログインするには postgres 使用のPostgreSQLプロンプトをユーザに対してユーザが、最初にスイッチしてからアクセス psql ユーティリティを:

sudo su - postgres psql

ここから、PostgreSQLインスタンスと対話できます。 PostgreSQLシェルを終了するには、次を入力します。

\q

あなたはまたしてユーザーを切り替えることなく、PostgreSQLのプロンプトにアクセスすることができます sudo コマンド:

sudo -u postgres psql

通常、 postgres ユーザーはローカルホストからのみ使用されます。

PostgreSQLロールとデータベースの作成

CREATEROLE 特権を CREATEROLE スーパーユーザーとロールのみが新しいロールを作成できます。

次の例では、 john という名前の新しいロールを作成し、 johndb という名前のデータベースを作成して、データベースに対する特権を付与します。

  1. まず、PostgreSQLのシェルに接続します。

    sudo -u postgres psql

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

    create role john;

    新しいデータベースを作成します。

    create database johndb;

    次のクエリを実行して、データベースのユーザーに特権を付与します。

    grant all privileges on database johndb to john;

PostgreSQLサーバーへのリモートアクセスを有効にする

デフォルトでは、PostgreSQLサーバは、ローカルインターフェイス上でリッスン 127.0.0.1

PostgreSQLサーバーへのリモートアクセスを有効にするには、構成ファイルを開きます。

sudo nano /var/lib/pgsql/data/postgresql.conf

[ CONNECTIONS AND AUTHENTICATION セクションまで下にスクロールし、次の行を追加/編集します。

/var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

ファイルを保存し、PostgreSQLサービスを再起動します:

sudo systemctl restart postgresql

ss ユーティリティで変更を確認します。

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

上記の出力は、PostgreSQLサーバーがすべてのインターフェイス(0.0.0.0)のデフォルトポートでリッスンしていることを示しています。

最後の手順は、 pg_hba.conf ファイルを編集して、リモート接続を受け入れるようにサーバーを構成することです。

以下に、さまざまな使用例を示すいくつかの例を示します。

/var/lib/pgsql/data/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane can access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane can access only the janedb database from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane can access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

結論

CentOS 8は、9.6と10.0の2つのPostgreSQLバージョンを提供します。

このトピックの詳細については、PostgreSQLのドキュメントをご覧ください

centos postgresqlデータベース