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

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

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

このチュートリアルでは、CentOS7マシンにPostgreSQLをインストールする方法について2つの異なる方法を紹介します。最初の方法では、CentOSリポジトリからPostgreSQL v9.2.23をインストールするために必要な手順を説明し、2番目の方法では、公式のPostgreSQLリポジトリから最新バージョンのPostgreSQLをインストールする方法を示します。

アプリケーションが最新バージョンを必要としない場合は、最初の方法を使用して、CentOSリポジトリからPostgreSQLをインストールすることをお勧めします。

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

前提条件#

このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。

CentOSリポジトリからPostgreSQLをインストールします#

この記事を書いている時点で、CentOSリポジトリから入手できるPostgreSQLの最新バージョンはPostgreSQLバージョン9.2.23です。

CentOSサーバーにPostgreSQLをインストールするには、以下の手順に従います。

  1. PostgreSQLのインストール

    PostgreSQLデータベースにいくつかの追加機能を提供するPostgreSQLcontribパッケージと一緒にPostgreSQLサーバーをインストールするには、次のように入力します。

    sudo yum install postgresql-server postgresql-contrib
  2. データベースの初期化

    次のコマンドを使用してPostgreSQLデータベースを初期化します。

    sudo postgresql-setup initdb
    Initializing database ... OK
  3. PostgreSQLの起動

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

    sudo systemctl start postgresqlsudo systemctl enable postgresql
  4. PostgreSQLのインストールの確認

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

    sudo -u postgres psql -c "SELECT version();"
    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
    (1 row)
Psqlは、PostgreSQLサーバーとの対話を可能にするインタラクティブなコマンドラインユーティリティです。

PostgreSQLリポジトリからPostgreSQLをインストールします#

この記事を書いている時点で、公式のPostgreSQLリポジトリから入手できるPostgreSQLの最新バージョンはPostgreSQLバージョン10.4です。次のステップに進む前に、PostgreSQL Yumリポジトリページにアクセスして、新しいバージョンが利用可能かどうかを確認する必要があります。

以下の手順に従って、CentOSサーバーに最新のPostgreSQLバージョンをインストールします:

  1. PostgreSQLリポジトリの有効化

    PostgreSQLリポジトリを有効にするには、リポジトリrpmをインストールするだけです。 ファイル:

    sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. PostgreSQLのインストール

    リポジトリが有効になったら、次のコマンドを使用してPostgreSQLサーバーとPostgreSQLcontribパッケージをインストールします。

    sudo yum install postgresql10-server postgresql10-contrib
  3. データベースの初期化

    PostgreSQLデータベースタイプを初期化するには:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    Initializing database ... OK
  4. PostgreSQLの起動

    PostgreSQLサービスを開始し、ブートタイプで開始できるようにするには:

    sudo systemctl start postgresql-10sudo systemctl enable postgresql-10
  5. PostgreSQLのインストールの確認

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

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
    (1 row)

PostgreSQLの役割と認証方法#

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

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

  • 信頼-この方法では、pg_hba.confで定義された基準がある限り、役割はパスワードなしで接続できます。 満たされています。
  • パスワード-役割はパスワードを提供することで接続できます。パスワードはscram-sha-256として保存できます md5 およびpassword (クリアテキスト)。
  • Ident-このメソッドはTCP/IP接続でのみサポートされます。これは、オプションのユーザー名マッピングを使用して、クライアントのオペレーティングシステムのユーザー名を取得することで機能します。
  • ピア-Identと同じですが、ローカル接続でのみサポートされます。

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

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

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

sudo su - postgrespsql

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

\q

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

sudo -u postgres psql

postgres ユーザーは通常、ローカルホストからのみ使用されるため、このユーザーのパスワードを設定しないことをお勧めします。

公式のPostgreSQLリポジトリからPostgreSQLバージョン10をインストールした場合は、psqlへのフルパスを使用する必要があります。 /usr/pgsql-10/bin/psqlであるバイナリ 。

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

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

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

  1. PostgreSQLシェルに接続する

    sudo -u postgres psql
  2. 新しいPostgreSQLロールを作成する

    次のコマンドは、「john」という名前の新しいロールを作成します。

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

    createdbを使用して、「johndb」という名前の新しいデータベースを作成します コマンド:

    CREATE DATABASE johndb;
  4. 特権を付与する

    johnに権限を付与するには 前の手順で作成したデータベースのユーザーは、次のクエリを実行します。

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

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

デフォルトでは、PostgreSQLサーバーはローカルインターフェース127.0.0.1でのみリッスンします 。 PostgreSQLサーバーへのリモートアクセスを有効にするには、構成ファイルpostgresql.confを開きます。 listen_addresses = '*'を追加します CONNECTIONS AND AUTHENTICATION セクション。

sudo vim /var/lib/pgsql/data/postgresql.conf
PostgreSQLバージョン10を実行している場合、ファイルへのパスは/var/lib/pgsql/10/data/postgresql.confです。 ./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
PostgreSQLバージョン10を実行している場合は、systemctl restart postgresql-10を使用して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 will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust
PostgreSQLバージョン10を実行している場合、ファイルへのフルパスは/var/lib/pgsql/10/data/pg_hba.confです。 。
Cent OS
  1. CentOS7にPostgreSQLをインストールする方法

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

  3. CentOS 7 /RHEL7にPostgreSQLをインストールする方法

  1. CentOS7にPHP7、7.2、7.3をインストールする方法

  2. CentOS7にJava11および12をインストールする方法

  3. CentOS7にWine4.0をインストールする方法

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

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

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