GNU/Linux >> Linux の 問題 >  >> Fedora

Fedora34にPostgres14をインストールして設定する方法

もともとはPOSTGRESと名付けられ、カリフォルニア大学バークレー校で開発されたIngresデータベースの後継としてその起源を示しています。 PostgreSQLは、多くのWeb、モバイル、地理空間、および分析アプリケーションのプライマリデータストアまたはデータウェアハウスとして使用されます。 PostgreSQLは、構造化データと非構造化データを1つの製品に保存できます。

このガイドでは、Postgresql14をFedora34にインストールします。

関連コンテンツ

  • Postgresの権限–データベースユーザーの作成、更新、削除
  • Centos8にPostgres14をインストールして構成する方法
  • Centos8にPostgres13をインストールして構成する方法
  • DockerとDocker-Composeを使用したPostgresql14の実行
  • Postgres 13Ubuntu20.04をインストールして構成する方法
  • Debian11にPostgres14をインストールして設定する方法
  • Postgres 14Ubuntu20.04をインストールして構成する方法
  • OpenSUSELeap15.3にPostgres14をインストールして設定する方法

前提条件

フォローするには、次のものがあることを確認してください。

  1. 更新されたFedora34サーバー
  2. サーバーまたはrootアクセス権を持つユーザーへのrootアクセス
  3. サーバーからのインターネットアクセス
  4. Linuxターミナルの基本的な知識

目次

  1. サーバーが最新であることを確認します
  2. PostgresServerのインストールと起動
  3. PostgreSQLの役割とデータベースの認証方法
  4. postgresデータベースへの接続
  5. リモートアクセス用のpostgres14インスタンスの構成
  6. ユーザー管理

1。サーバーが最新であることを確認します

先に進む前に、サーバーに最新のパッケージがあることを確認しましょう。次のコマンドを使用します:

$ sudo dnf -y update
Last metadata expiration check: 2:55:24 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!

2。 Postgresサーバーのインストールと起動

fedora dnfpostgresモジュールにはPostgres14のインストールが含まれていますが、デフォルトではありません。次のコマンドを使用して、FedoraのPostgesモジュールを確認しましょう:

$ sudo dnf module list postgresql
Last metadata expiration check: 2:56:45 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Fedora Modular 34 - x86_64
Name                                                              Stream                                                        Profiles                                                                 Summary
postgresql                                                        9.6                                                           client, server [d]                                                       PostgreSQL module
postgresql                                                        10                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        11                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        12                                                            client, server                                                           PostgreSQL module
postgresql                                                        13                                                            client, server                                                           PostgreSQL module

Fedora Modular 34 - x86_64 - Updates
Name                                                              Stream                                                        Profiles                                                                 Summary
postgresql                                                        9.6                                                           client, server [d]                                                       PostgreSQL module
postgresql                                                        10                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        11                                                            client, server [d]                                                       PostgreSQL module
postgresql                                                        12                                                            client, server                                                           PostgreSQL module
postgresql                                                        13                                                            client, server                                                           PostgreSQL module
postgresql                                                        14                                                            client, server                                                           PostgreSQL module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

つまり、それを使用するには、それを有効にする必要があります。最初にpostgresモジュールをリセットして、デフォルトがないようにします

sudo dnf module reset postgresql

次に、次のコマンドでpostgres14を有効にします。

$ sudo dnf module enable postgresql:14
Last metadata expiration check: 3:03:33 ago on Tue 26 Oct 2021 12:05:29 PM UTC.
Dependencies resolved.
================================================================================================================================================================================================================================================================================
 Package                                                           Architecture                                                     Version                                                             Repository                                                         Size
================================================================================================================================================================================================================================================================================
Enabling module streams:
 postgresql                                                                                                                         14

Transaction Summary
================================================================================================================================================================================================================================================================================

Is this ok [y/N]: y
Complete!

次に、Postgresql 14と、PostgreSQLデータベースシステムにいくつかの追加機能を提供するContribパッケージをインストールしましょう。

sudo dnf install -y postgresql-server postgresql-contrib

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

$ sudo postgresql-setup initdb
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

今すぐサービスを開始します:

sudo systemctl start postgresql

次に、サーバーが再起動したときにサービスが開始されるようにサービスを有効にします。

$ sudo systemctl enable postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

Postgres 14が実行されていることを確認します:

$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2021-10-26 15:18:53 UTC; 46s ago
    Process: 17645 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
   Main PID: 17647 (postmaster)
      Tasks: 8 (limit: 4603)
     Memory: 15.7M
        CPU: 47ms
     CGroup: /system.slice/postgresql.service
             ├─17647 /usr/bin/postmaster -D /var/lib/pgsql/data
             ├─17648 postgres: logger
             ├─17650 postgres: checkpointer
             ├─17651 postgres: background writer
             ├─17652 postgres: walwriter
             ├─17653 postgres: autovacuum launcher
             ├─17654 postgres: stats collector
             └─17655 postgres: logical replication launcher

Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal systemd[1]: Starting PostgreSQL database server...
Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal postmaster[17647]: 2021-10-26 15:18:52.998 UTC [17647] LOG:  redirecting log output to logging collector process
Oct 26 15:18:52 ip-10-2-40-182.us-west-2.compute.internal postmaster[17647]: 2021-10-26 15:18:52.998 UTC [17647] HINT:  Future log output will appear in directory "log".
Oct 26 15:18:53 ip-10-2-40-182.us-west-2.compute.internal systemd[1]: Started PostgreSQL database server.

Active: active (running) サービスが稼働中であることを示しています。

次に、PostgreSQLデータベースサーバーに接続してそのバージョンを印刷することにより、インストールが成功したことを確認しましょう。

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

出力:

$ sudo -u postgres psql -c "SELECT version();"
could not change directory to "/home/fedora": Permission denied
                                                   version
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1), 64-bit
(1 row)

3。 PostgreSQLの役割とデータベースの認証方法

PostgreSQLはrolesと呼ばれる概念を使用しています クライアントの認証と承認を処理します。デフォルトでは、Postgresはident authenticationを使用するように設定されています 、これは、Postgresロールを一致するUnix/Linuxシステムアカウントに関連付けることを意味します。 Postgres内にロールが存在する場合、同じ名前のUnix/Linuxユーザー名がそのロールとしてサインインできます。

インストール手順により、postgres というユーザーアカウントが作成されました これはデフォルトのpostgresに関連付けられています 役割。 PostgreSQLを使用するには、そのアカウントにログインできます。

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

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

4。 postgresデータベースに接続しています

  1. postresに切り替える ユーザー

ターミナルに次のように入力して、サーバーのpostgresアカウントに切り替えます;:

sudo -i -u postgres

次のように入力すると、Postgresプロンプトにすぐにアクセスできるようになりました:

$ psql
psql (14.0)
Type "help" for help.

postgres=#

これによりPostgreSQLプロンプトにログインし、ここからデータベース管理システムをすぐに操作できます。

2.コマンドをpostgresとして実行する ユーザー

これを使用して、コマンドをpostgres として直接実行します sudoを使用しているユーザー

sudo -u postgres psql

出力:

$ sudo -u postgres psql
psql (14.0)
Type "help" for help.

postgres=#

5。リモートアクセス用のpostgres14インスタンスの構成

これを実現するために、postgres構成ファイルを変更します。ファイルを開き、構成を調整する必要があります。 Postgresql 14のメイン構成ファイルは、このパス/var/lib/pgsql/14/data/pg_hba.confにあります。

ピアIDを信頼できるように変更しましょう:

sed -i '/^local/s/peer/trust/' /var/lib/pgsql/data/pg_hba.conf

IDIDをmd5に変更して、パスワードログインを許可します。

sed -i '/^host/s/ident/md5/' /var/lib/pgsql/data/pg_hba.conf

ブロックを追加して、どこからでもアクセスできるようにします:

このコンテンツをファイル/var/lib/pgsql/data/pg_hba.confに追加します

host    all             all             0.0.0.0/0                md5

PostgreSQLが*

をリッスンしていることを確認します

この行をここの構成に追加します/var/lib/pgsql/data/postgresql.conf

listen_addresses='*'

postgresqlサーバーを有効にして再起動し、構成を再読み込みします

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6。ユーザー管理

スーパーユーザーの作成

すべての設定が完了したので、スーパーユーザーを作成しましょう。
postresロールとしてDBに接続します:

$ sudo -u postgres psql
psql (14.0)
Type "help" for help.

postgres=#

rootという名前のスーパーユーザーを作成します :

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

出力:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {}

postgres=#

アプリケーションユーザーの管理

これを使用して、データベースを作成し、ユーザーを作成して、そのユーザーにそのデータベースへのすべてのアクセスを許可します。

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

postgresでのユーザーと権限の管理に関するこの包括的なガイドをここでチェックしてください。

リモートホストからインスタンスに接続する

次のコマンドを使用して、ローカルマシンからpostgresインスタンスに接続します。

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

結論

これまで、Fedora34サーバーにPostgresql14をインストールし、いくつかの基本的な構成を行ってから、基本的なユーザー管理を行うことができました。


Fedora
  1. Postgres 13Ubuntu20.04をインストールして設定する方法

  2. Centos8にPostgres13をインストールして設定する方法

  3. Postgres 14Ubuntu20.04をインストールして設定する方法

  1. Debian11にPostgres14をインストールして設定する方法

  2. MysqlServer8をFedora34/35にインストールして構成する方法

  3. Fedora34にRedis6をインストールして設定する方法

  1. OpenVPNアクセスサーバーをインストールして構成する方法

  2. Fedora35にAnsibleをインストールして設定する方法

  3. Fedora35にMariadbをインストールして設定する方法