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

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

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

このチュートリアルでは、PostgreSQLをDebian 9にインストールする方法を示し、基本的なデータベース管理の基礎を探ります。

前提条件#

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

PostgreSQLのインストール#

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

DebianサーバーにPostgreSQLをインストールするには、次の手順を実行します。

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

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

    sudo apt install postgresql postgresql-contrib
  3. インストールが完了すると、PostgreSQLサービスが自動的に開始されます。インストールを確認するために、psqlを使用してPostgreSQLデータベースサーバーに接続します ユーティリティとサーバーバージョンの印刷:

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

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

                                                     version                                                  
    -----------------------------------------------------------------------------------------------------------
    PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
    (1 row)
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を持つスーパーユーザーとロールのみ 特権は新しい役割を作成できます。

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

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

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

    sudo su - postgres -c "createuser john"
  2. 新しいPostgreSQLデータベースを作成する

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

    sudo su - postgres -c "createdb johndb"
  3. 特権を付与する

    johnに権限を付与するには 前の手順で作成したデータベースのユーザーは、PostgreSQLシェルに接続します。

    sudo -u postgres psql

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

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

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

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

sudo vim /etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/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/9.6/main/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

Debian
  1. Debian9およびDebian8にPostgreSQL11/10をインストールする方法

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

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

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

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

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

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

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

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