PostgreSQLはデータベース管理システムであり、多くの点でMySQLに似ていますが、いくつかの重要な違いがあります。 MySQLと同様に、一般的にLinuxでホストされています。このガイドでは、Ubuntu 20.04 Focal FossaでPostgreSQLサーバーを実行する方法と、外部のPostgreSQLデータベースに接続する必要がある場合に備えてクライアントバージョンをインストールする方法を示します。
このチュートリアルでは、次のことを学びます。
- PostgreSQLクライアントをインストールしてサーバーに接続する方法
- PostgreSQLサーバーをインストールして構成する方法
Ubuntu 20.04 PostgreSQL
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Ubuntu20.04をインストールまたはUbuntu20.04FocalFossaをアップグレード | |
PostgreSQLサーバーとクライアント | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
PostgreSQLクライアントのインストール
PostgreSQLクライアントを使用して、外部のPostgreSQLデータベースに接続できます。すでにデータベースサーバーを稼働させているが、1つ以上のクライアントシステムからデータベースにリモートアクセスできる必要がある場合は、このオプションを使用します。
- 開始するには、
postgresql-client
をインストールします ターミナルを開いて次のコマンドを入力してパッケージ化します:$ sudo apt install postgresql-client
- PostgreSQLクライアントのインストールが完了したら、
psql
を使用できます。 リモートPostgreSQLサーバーに接続するコマンド。リモートサーバーのホスト名またはIPアドレスを指定する必要があります(postgre-server
として表示) 以下の例では)とユーザー名(postgre-user
以下で認証しています:$ psql -h postgre-server -U postgre-user psql (12.2 (Ubuntu 12.2-1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help.
クライアントバージョンは以上です。次のセクションでは、着信クライアント接続を受け入れることができるPostgreSQLサーバーをセットアップする方法を示します。
PostgreSQLサーバーのインストール
- PostgreSQLデータベースのホスティングを開始するには、
postgresql
をインストールします 次のコマンドを使用してUbuntuでパッケージ化します:$ sudo apt install postgresql
- PostgreSQLサーバーのインストールが完了すると、ポート
5432
で着信接続をリッスンしていることがわかります。 。これは、期待どおりに稼働していることを確認するための良い方法です。$ ss -nlt
ポート5432でリッスンしているPostgreSQLサーバー - デフォルトでは、システムが起動するたびにPostgreSQLサーバーが自動的に起動します。この動作を変更したい場合は、次のコマンドでいつでも変更できます:
$ sudo systemctl disable postgresql
再度有効にするには、
disable
を置き換えるだけです。enable
を使用 。 - PostgreSQLサーバーはローカルループバックインターフェイス
127.0.0.1
でのみリッスンします デフォルトでは。 1つ以上のリモートクライアントをデータベースサーバーに接続することを計画している場合は、別のネットワークインターフェースでリッスンするようにPostgreSQLを構成する必要があります。この変更を行うには、nanoまたはお好みのテキストエディタを使用してPostgreSQLの構成ファイルを開きます。$ sudo nano /etc/postgresql/12/main/postgresql.conf
- このファイルの「接続と認証」セクションのどこかに次の行を追加します。これにより、PostgreSQLはすべてのネットワークインターフェースで着信接続をリッスンするように指示されます。
listen_addresses = '*'
この行をPostgreSQL構成ファイルに追加して、すべてのネットワークインターフェイスでリッスンします - 変更を保存して、構成ファイルを終了します。次に、変更を有効にするためにPostgreSQLサーバーを再起動します。
$ sudo systemctl restart postgresql
- これで、PostgreSQLがソケット
0.0.0.0:5432
をリッスンしていることがわかります。 。これは、ss
を実行することで確認できます。 もう一度コマンド:$ ss -nlt
PostgreSQLがポート5432のすべてのインターフェースからの接続をリッスンしていることを確認する - 次に、次の行を
/etc/postgresql/12/main/pg_hba.conf
に追加する必要があります。 構成ファイル。これにより、すべてのデータベースとユーザーへの着信クライアント接続が可能になります。md5
オプションは、ユーザーがパスワードで認証する必要があることを指定します。host all all 0.0.0.0/0 md5
この行を1つのコマンドでファイルに追加するには、次のコマンドを実行するだけです。
$ sudo bash -c "echo host all all 0.0.0.0/0 md5 >> /etc/postgresql/12/main/pg_hba.conf"
- 最後に、UFWファイアウォールを有効にしている場合は、PostgreSQLサーバーのリスニングポート
5432
を開くことができます。 以下のコマンドを実行して、着信TCPトラフィックに送信します。
$ sudo ufw allow from any to any port 5432 proto tcp Rule added Rule added (v6)
Ubuntu 20.04FocalFossaで実行されているPostgreSQLサーバー
結論
この記事では、Ubuntu 20.04 FocalFossaLinuxでPostgreSQLサーバーをホストする方法を学びました。また、データベースが任意のソースおよび任意のユーザーからの着信接続を受け入れることができるように、いくつかの初期構成を実行する方法も確認しました。これに加えて、PostgreSQLクライアントパッケージを使用してリモートPostgreSQLサーバーに接続する方法も確認しました。