アンドロイド

Debianの10でPostgreSQLをインストールする方法

目次:

Anonim

多くの場合、単にPostgresとして知られるPostgreSQLは、オープンソースの汎用オブジェクトリレーショナルデータベース管理システムです。 オンラインバックアップ、ポイントインタイムリカバリ、ネストされたトランザクション、SQLおよびJSONクエリ、マルチバージョン同時実行制御(MVCC)、非同期レプリケーションなど、多くの強力な機能を備えています。

このチュートリアルでは、Debian 10にPostgreSQLデータベースサーバーをインストールする手順を説明します。また、基本的なデータベース管理の基礎についても説明します。

PostgreSQLのインストール

この記事の執筆時点で、デフォルトのDebianリポジトリから入手できるPostgreSQLの最新バージョンはPostgreSQLバージョン11.5です。

DebianサーバーにPostgreSQLをインストールするには、rootまたはsudo特権を持つユーザーとして次の手順を実行します。

  1. APTパッケージインデックスを更新することで起動します。

    sudo apt update

    PostgreSQLデータベースとPostgreSQLデータベースの追加機能を提供するcontribパッケージをインストールします。

    sudo apt install postgresql postgresql-contrib

    インストールが完了すると、PostgreSQLサービスが開始されます。 インストールを確認するには、 psql ツールを使用してサーバーバージョンを印刷します。

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

    出力は次のようになります。

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql は、PostgreSQLサーバーと対話できる対話型のターミナルプログラムです。

PostgreSQLの役割と認証方法

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

PostgreSQLは、いくつかの認証方式をサポートしています。 最も頻繁に使用される方法は、以下のとおりです。

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

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

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

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

sudo su - postgres psql

ここから、PostgreSQLサーバーと対話できます。 PostgreSQLシェルを終了するには、次のように入力します。

\q

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

sudo -u postgres psql

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

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

createuser コマンドを使用すると、コマンドラインから新しいロールを作成できます。 CREATEROLE 特権を CREATEROLE スーパーユーザーとロールのみが新しいロールを作成できます。

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

  1. まず、次のコマンドを発行して役割を作成します。

    sudo su - postgres -c "createuser kylo"

    次に、使用してデータベースを作成 createdb コマンドを:

    sudo su - postgres -c "createdb kylodb"

    データベースのユーザーにアクセス許可を付与するには、PostgreSQLシェルに接続します。

    sudo -u postgres psql

    次のクエリを実行します。

    grant all privileges on database kylodb to kylo;

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

デフォルトでは、PostgreSQLサーバーはローカルインターフェース 127.0.0.1 のみリッスンします。

構成ファイル postgresql.conf を開き、 listen_addresses = '*' CONNECTIONS AND AUTHENTICATION セクションに listen_addresses = '*' を追加します。 これは、すべてのネットワークインタフェースをリッスンするようにサーバーに指示します。

sudo nano /etc/postgresql/11/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf

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

ファイルを保存し、PostgreSQLサービスを再起動して、変更を有効にします。

sudo service postgresql restart

変化を確認し 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 ファイルを編集して、リモートログインを受け入れるようにサーバーを構成することです。

以下は、異なる使用例を示すいくつかの例は以下のとおりです。

/etc/postgresql/11/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using an 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 an 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

結論

Debian 10でPostgreSQLをインストールおよび設定する方法を示しました。このトピックの詳細については、PostgreSQLのドキュメントを参照してください。

debian postgresqlデータベース