もともとはPOSTGRESと名付けられ、カリフォルニア大学バークレー校で開発されたIngresデータベースの後継としてその起源を示しています。 PostgreSQLは、多くのWeb、モバイル、地理空間、および分析アプリケーションのプライマリデータストアまたはデータウェアハウスとして使用されます。 PostgreSQLは、構造化データと非構造化データを1つの製品に保存できます。
このガイドでは、OpenSUSELeap15.3にPostgresql14をインストールします
関連コンテンツ
- FreeBSD13にPostgres14をインストールして設定する方法
- Postgresの権限–データベースユーザーの作成、更新、削除
- Centos8にPostgres14をインストールして構成する方法
- Centos8にPostgres13をインストールして構成する方法
- DockerとDocker-Composeを使用したPostgresql14の実行
- Postgres 13Ubuntu20.04をインストールして構成する方法
- Debian11にPostgres14をインストールして設定する方法
- Postgres 14Ubuntu20.04をインストールして構成する方法
- Fedora34にPostgres14をインストールして設定する方法
前提条件
フォローするには、次のものがあることを確認してください。
- OpenSUSELeap15サーバーを更新
- サーバーまたはrootアクセス権を持つユーザーへのrootアクセス
- サーバーからのインターネットアクセス
- Linuxターミナルの基本的な知識
目次
- サーバーが最新であることを確認します
- PostgresServerのインストールと起動
- PostgreSQLの役割とデータベースの認証方法
- postgresデータベースへの接続
- リモートアクセス用のpostgres14インスタンスの構成
- Postgres14でのユーザー管理
1。サーバーが最新であることを確認します
先に進む前に、サーバーに最新のパッケージがあることを確認しましょう。まず、リポジトリパッケージデータベースを更新します
~> sudo zypper ref
Repository 'Update repository of openSUSE Backports' is up to date.
Repository 'Debug Repository' is up to date.
Repository 'Update Repository (Debug)' is up to date.
Repository 'Non-OSS Repository' is up to date.
Repository 'Main Repository' is up to date.
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is up to date.
Repository 'Source Repository' is up to date.
Repository 'Main Update Repository' is up to date.
Repository 'Update Repository (Non-Oss)' is up to date.
All repositories have been refreshed.
次に、次のコマンドを使用してパッケージを更新します。
~> sudo zypper up
Retrieving repository 'Update repository with updates from SUSE Linux Enterprise 15' metadata ...................................[done]
Building repository 'Update repository with updates from SUSE Linux Enterprise 15' cache ........................................[done]
Loading repository data...
Reading installed packages...
Nothing to do.
2。 Postgresサーバーのインストールと起動
デフォルトでは、OpenSUSELeapにはPostgresqlリポジトリは含まれていません。 postgresチームから提供されたリポジトリを使用してpostgres14のリポジトリを設定します。これによりPostgresをインストールできるようになります。
次のコマンドを使用してPostgresリポジトリをインストールしましょう:
sudo zypper addrepo https://download.postgresql.org/pub/repos/zypp/repo/pgdg-sles-15-pg14.repo
次に、インストールする前に、次のコマンドを使用してリポジトリを更新します。
sudo zypper ref
最後に、PostgreSQL14サーバーをインストールします。また、PostgreSQLデータベースシステムにいくつかの追加機能を提供するContribパッケージもインストールしています。
sudo zypper in postgresql14-server postgresql14-contrib
インストールが完了したら、次のコマンドを使用してPostgreSQLデータベースを初期化します。
~> sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Initializing database ... OK
次のコマンドを使用してpostgresを開始します:
sudo systemctl start postgresql-14
次に、サーバーが再起動したときにサービスが開始されるようにサービスを有効にします。
~> sudo systemctl enable postgresql-14
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-14.service → /usr/lib/systemd/system/postgresql-14.service.
Postgresが実行されていることを確認します:
~> sudo systemctl status postgresql-14
● postgresql-14.service - PostgreSQL 14 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-10-26 18:52:54 UTC; 38s ago
Docs: https://www.postgresql.org/docs/14/static/
Main PID: 26244 (postmaster)
Tasks: 8 (limit: 4587)
CGroup: /system.slice/postgresql-14.service
├─26244 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
├─26245 postgres: logger
├─26247 postgres: checkpointer
├─26248 postgres: background writer
├─26249 postgres: walwriter
├─26250 postgres: autovacuum launcher
├─26251 postgres: stats collector
└─26252 postgres: logical replication launcher
Oct 26 18:52:54 ip-10-2-40-60 systemd[1]: Starting PostgreSQL 14 database server...
Oct 26 18:52:54 ip-10-2-40-60 postmaster[26244]: 2021-10-26 18:52:54.691 UTC [26244] LOG: redirecting log output to logging collector>
Oct 26 18:52:54 ip-10-2-40-60 postmaster[26244]: 2021-10-26 18:52:54.691 UTC [26244] HINT: Future log output will appear in directory>
Oct 26 18:52:54 ip-10-2-40-60 systemd[1]: Started PostgreSQL 14 database server.
Active: active (running)
サービスが稼働中であることを示しています。
次に、PostgreSQLデータベースサーバーに接続してそのバージョンを印刷することにより、インストールが成功したことを確認しましょう。
sudo -u postgres psql -c "SELECT version();"
出力:
~> sudo -u postgres psql -c "SELECT version();"
version
------------------------------------------------------------------------------------
PostgreSQL 14.0 on x86_64-pc-linux-gnu, compiled by gcc (SUSE Linux) 7.5.0, 64-bit
(1 row)
3。 PostgreSQLの役割とデータベースの認証方法
PostgreSQLはroles
と呼ばれる概念を使用しています クライアントの認証と承認を処理します。デフォルトでは、Postgresはident authentication
を使用するように設定されています 、これは、Postgresロールを一致するUnix/Linuxシステムアカウントに関連付けることを意味します。 Postgres内にロールが存在する場合、同じ名前のUnix/Linuxユーザー名がそのロールとしてサインインできます。
インストール手順により、postgres
というユーザーアカウントが作成されました これはデフォルトのpostgres
に関連付けられています 役割。 PostgreSQLを使用するには、そのアカウントにログインできます。
PostgreSQLは複数の認証方法をサポートしています。最も一般的に使用される方法は次のとおりです。
Trust
–pg_hba.conf
で定義されている条件である限り、ロールはパスワードなしで接続できます。 満たされています。Password
–役割は、パスワードを提供することで接続できます。パスワードはscram-sha-256
として保存できます 、md5
、およびpassword
(clear-text
。Ident
– TCP/IP接続でのみサポートされます。これは、オプションのユーザー名マッピングを使用して、クライアントのオペレーティングシステムのユーザー名を取得することで機能します。Peer
– Identと同じですが、ローカル接続でのみサポートされます。
4。 postgresデータベースに接続しています
-
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/14/data/pg_hba.conf
IDIDをmd5に変更して、パスワードログインを許可します。
sed -i '/^host/s/ident/md5/' /var/lib/pgsql/14/data/pg_hba.conf
ブロックを追加して、どこからでもアクセスできるようにします:
このコンテンツをファイル/var/lib/pgsql/14/data/pg_hba.conf
に追加します
host all all 0.0.0.0/0 md5
PostgreSQLが*
をリッスンしていることを確認します
この行をここの構成に追加します/var/lib/pgsql/14/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'
結論
これまで、OpenSUSE Leap15.3サーバーにPostgresql14をインストールし、いくつかの基本的な構成を行ってから、基本的なユーザー管理を行うことができました。