アンドロイド

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

How to create bootable USB drive for CentOS 7 installer

How to create bootable USB drive for CentOS 7 installer

目次:

Anonim

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

このチュートリアルでは、CentOS 7マシンに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データベースにいくつかの追加機能を提供するPostgreSQL contribパッケージとともにPostgreSQLサーバーをインストールするには、次のように入力します。

    sudo yum install postgresql-server postgresql-contrib

    データベースの初期化

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

    sudo postgresql-setup initdb

    Initializing database… OK

    PostgreSQLの起動

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

    sudo systemctl start postgresql sudo systemctl enable postgresql

    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リポジトリページにアクセスして、利用可能な新しいバージョンがあるかどうかを確認する必要があります。

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

  1. PostgreSQLリポジトリを有効にする

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

    sudo yum install

    PostgreSQLのインストール

    リポジトリが有効になったら、以下を使用してPostgreSQLサーバーとPostgreSQL contribパッケージをインストールします。

    sudo yum install postgresql10-server postgresql10-contrib

    データベースの初期化

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

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

    Initializing database… OK

    PostgreSQLの起動

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

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    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 scram-sha-256 md5 および password (クリアテキスト)として保存できます。Ident-この方法はTCP / IP接続でのみサポートされています。 オプションのユーザー名マッピングを使用して、クライアントのオペレーティングシステムのユーザー名を取得することで機能します。ピア-Identと同じですが、ローカル接続でのみサポートされます。

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

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

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

sudo su - postgres psql

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

\q

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

sudo -u postgres psql

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

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

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

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

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

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

    sudo -u postgres psql

    新しいPostgreSQLロールを作成する

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

    create role john;

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

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

    create database johndb;

    特権を付与する

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

    grant all privileges on database johndb to john;

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

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

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 です。

結論

CentOS 7サーバーにPostgreSQLをインストールおよび構成する方法を学習しました。

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

centos postgresqlデータベース