GNU/Linux >> Linux の 問題 >  >> Debian

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

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

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

PostgreSQLのインストール#

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

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

  1. APTパッケージインデックスを更新することから始めます:

    sudo apt update
  2. PostgreSQLデータベースに追加機能を提供するPostgreSQLサーバーとcontribパッケージをインストールします。

    sudo apt install postgresql postgresql-contrib
  3. インストールが完了すると、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 (クリアテキスト)
  • 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の役割とデータベースの作成#

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

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

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

    sudo su - postgres -c "createuser kylo"
  2. 次に、createdbを使用してデータベースを作成します コマンド:

    sudo su - postgres -c "createdb kylodb"
  3. データベース上のユーザーに権限を付与するには、PostgreSQLシェルに接続します。

    sudo -u postgres psql

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

    GRANT ALL PRIVILEGES ON DATABASE kylodb TO kylo;

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

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

リモートの場所からPostgreSQLサーバーに接続する場合は、パブリックインターフェイスでリッスンするようにサーバーを設定し、リモート接続を受け入れるように構成を編集する必要があります。

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

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
  1. Debian9およびDebian8にPostgreSQL11/10をインストールする方法

  2. Debian 11 /Debian10にPostgreSQLをインストールする方法

  3. Debian9にphpPgAdminをインストールする方法

  1. Debian9にRをインストールする方法

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

  3. Debian10にRをインストールする方法

  1. Debian 11 /Debian10にpgAdminをインストールする方法

  2. Debian 11 /Debian10にphpPgAdminをインストールする方法

  3. Debian11のインストール方法