CentOS8にPostgresqlをインストールする方法

[ PostgreSQL](https://cloud.tencent.com/product/postgresql?from=10680)またはPostgresは、オープンソースの多目的[リレーショナルデータベース](https://cloud.tencent.com/product/cdb-overview?from=10680)管理システムです。障害に強い環境や複雑なアプリケーションを構築できる多くの高度な機能を備えています。

このガイドでは、CentOS8にPostgreSQLデータベースサーバーをインストールする方法について説明します。インストールするバージョンを選択する前に、アプリがそれをサポートしていることを確認してください。

PostgreSQLデータベース管理の基本について説明します。

1.前提条件##

パッケージをインストールするには、rootまたはsudo権限を持つ別のユーザーとしてシステムにログインする必要があります。

2.CentOS8にPostgresqlをインストールします##

この記事の執筆時点では、インストール可能なPostgreSQLサーバーのバージョンは9.6と10.0の2つです。

使用可能なPostgreSQLモジュールを一覧表示するには、次のように入力します。

dnf module list postgresql

出力は、postgresqlには2つのバージョンがあることを示しています。各バージョンには、サーバーとクライアントの2つの部分があります。サーバーバージョン10がデフォルトバージョンです。

CentOS-8- AppStream
Name          Stream    Profiles              Summary
postgresql    10[d]    client, server [d]    PostgreSQL server and client module
postgresql    9.6       client, server [d]    PostgreSQL server and client module
  1. デフォルトバージョンのPostgreSQLサーバーバージョン10.0をインストールするには、次のように入力します。
sudo dnf install @postgresql:10
  1. PostgreSQLサーバーバージョン9.6をインストールするには、次のように入力します。
sudo dnf install @postgresql:9.6

PostgreSQLデータベースにいくつかの追加機能を提供するcontribパッケージをインストールすることもできます。

sudo dnf install postgresql-contrib

インストールが完了したら、次のコマンドを使用してPostgreSQLデータベースを初期化します。

sudo postgresql-setup initdb
Initializing database ... OK

PostgreSQLサービスを開始し、起動時にPostgreSQLサービスを有効にします。

sudo systemctl enable --now postgresql

psqlツールを使用してPostgreSQLデータベースサーバーに接続し、そのバージョン番号を出力してインストールプロセスを確認します。

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc(GCC)8.2.120180905(Red Hat 8.2.1-3),64-bit

3、PostgreSQLの役割とID認証方法##

PostgreSQLは複数の認証方法をサポートしています。最も一般的に使用される方法は次のとおりです。

PostgreSQLクライアント認証は通常、 pg_hba.confファイルで定義されます。デフォルトでは、ローカル接続の場合、PostgreSQLはピアに対して認証するように設定されています。

postgresユーザーとしてPostgreSQLサーバーにログインするには、最初にユーザーを切り替えてから、 psqlツールを使用してPostgreSQLにアクセスします。

sudo su - postgres
psql

ここから、PostgreSQLインスタンスを操作できます。 PostgreSQLシェルを終了し、次のように入力します。

\ q

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

sudo -u postgres psql

通常、 postgresユーザーはローカルでのみ使用されます。

第4に、PostgreSQLの役割とデータベースを作成します##

新しいロールを作成できるのは、スーパーユーザーと CREATEROLE権限を持つロールのみです。

次の例では、 johnという名前のロール、 johndbという名前のデータベースを作成し、データベースへのアクセス許可を付与します。

  1. まず、PostgreSQLシェルに接続します。
sudo -u postgres psql
  1. 次のコマンドを使用して、新しいPostgreSQLロールを作成します。
create role john;
  1. 新しいデータベースを作成します。
create database johndb;
  1. 次のクエリステートメントを使用して、データベースに対するすべてのアクセス許可をユーザーに付与します。
grant all privileges on database johndb to john;

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

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

PostgreSQLサーバーへのリモートアクセスを許可するには、構成ファイルを開きます。

sudo nano /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

ssツールを使用して、この変更を確認します。

ss -nlt | grep 5432
LISTEN   01280.0.0.0:54320.0.0.0:*
LISTEN   0128[::]:5432[::]:*

上記の出力は、PostgreSQLサーバーがすでにすべてのネットワークインターフェイスのデフォルトポート( 0.0.0.0)でリッスンしていることを示しています。

最後のステップは、 pg_hba.confファイルを編集して、リモート接続を受け入れるようにサーバーを構成することです。

さまざまなユーザー例を示すいくつかの例を次に示します。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location(192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

6、要約##

CentOS 8は、9.6と10.0の2つのPostgreSQLバージョンを提供します。

このトピックの詳細については、[PostgreSQL公式ドキュメント](https://www.postgresql.org/docs/10.0/static/index.html)にアクセスしてください。

Recommended Posts

CentOS8にPostgresqlをインストールする方法
centOS7にjdk1.8をインストールする方法
CentOS8にMemcachedをインストールする方法
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にTensorFlowをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にNginxをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentosにWordpressをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOS8にMariaDBをインストールする方法
CentOS7にMongoDBをインストールする方法
CentOS8にOdoo13をインストールする方法
CentOS8にApacheをインストールする方法
CentOS8にOpenCVをインストールする方法
CentOS8にPHPをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
CentOS8にMongoDBをインストールする方法
CentOS8にApacheMavenをインストールする方法
[グラフィック]セントスにtomcatをインストールする方法
R&D:CentOS7にPython3をインストールする方法
CentOS7にGCCコンパイラをインストールする方法
centos7.0にオフラインJDK1.8をインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
CentOS8にVisualStudioコードをインストールする方法
CentOS7にDockerをインストールして使用する方法
CentOSLinuxにRPMパッケージをインストールする方法
CentOS8にVNCをインストールして構成する方法
CentOS8にComposerをインストールして使用する方法
CentOS8にRedisをインストールして構成する方法
CentOS8にNode.jsとnpmをインストールする方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にCurlをインストールして使用する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にVirtualBoxクライアント拡張機能をインストールする方法
RHEL 8 / CentOS8にDockerCEをインストールする方法
centosにtomcatをインストールおよびアンインストールする方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にJavaをインストールする方法