GNU/Linux >> Linux の 問題 >  >> Cent OS

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

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

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

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

前提条件#

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

CentOS 8へのPostgreSQLのインストール#

この記事の執筆時点では、標準のCentOSリポジトリからインストールできるPostgreSQLサーバーにはバージョン9.6と10.0の2つのバージョンがあります。

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

dnf module list postgresql

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

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. デフォルトのストリームをインストールするには、PostgreSQLサーバーバージョン10.0に次のように入力します。

    sudo dnf install @postgresql:10
  2. 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で定義されている条件である限り、ロールはパスワードなしで接続できます。 満たされています。
  • パスワード-役割はパスワードを提供することで接続できます。パスワードはscram-sha-256として保存できます 、md5 、およびpassword (クリアテキスト)。
  • Ident-TCP/IP接続でのみサポートされます。これは、オプションのユーザー名マッピングを使用して、クライアントのオペレーティングシステムのユーザー名を取得することで機能します。
  • ピア-Identと同じですが、ローカル接続でのみサポートされます。

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

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

postgresとしてPostgreSQLサーバーにログインするには ユーザー、最初にユーザーに切り替えてから、psqlを使用してPostgreSQLプロンプトにアクセスします ユーティリティ:

sudo su - postgrespsql

ここから、PostgreSQLインスタンスを操作できます。 PostgreSQLシェルを終了するには、次のように入力します。

\q

sudoを使用してユーザーを切り替えることなく、PostgreSQLプロンプトにアクセスすることもできます。 コマンド:

sudo -u postgres psql

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

PostgreSQLの役割とデータベースの作成#

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

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

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

    sudo -u postgres psql
  2. 次のコマンドを使用して、新しいPostgreSQLロールを作成します。

    CREATE ROLE john;
  3. 新しいデータベースを作成します:

    CREATE DATABASE johndb;
  4. 次のクエリを実行して、データベース上のユーザーに権限を付与します。

    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

Cent OS
  1. CentOS7にPostgreSQLをインストールする方法

  2. CentOS8にTeamspeak3サーバーをインストールする方法

  3. CentOS 6 /RHEL6にPostgreSQL10をインストールする方法

  1. RHEL 8 /CentOS8にPostgreSQLサーバーをインストールする方法

  2. CentOS7にPostgreSQLをインストールする方法

  3. CentOS8にPostgreSQLサーバーをインストールする方法

  1. CentOS7にMinecraftサーバーをインストールする方法

  2. CentOS8にNginxをインストールする方法

  3. CentOS8にMariaDBをインストールする方法