PostgreSQLは、無料のオープンソースオブジェクトリレーショナルデータベース管理システムです。このチュートリアルの目的は、RHEL 8 / CentOS8LinuxサーバーにPostgreSQLサーバーのインストールと基本構成を実行することです。
このチュートリアルでは、次のことを学びます。
- RHEL 8 /CentOS8にPostgreSQLデータベースサーバーをインストールする方法
- PostgreSQLデータベースサーバーを起動して有効にする方法
- ローカルホストおよびリモートロケーションからPostgreSQLデータベースにアクセスする方法
- デフォルトの
postgres
のパスワードを設定する方法 ユーザー - PostgreSQLがすべてのネットワークでリッスンできるようにする方法
- MD5パスワード認証を使用してPostgreSQLリモート接続を保護する方法
- PostgreSQLファイアウォールポートを開く方法
-
psql
を使用してPostgreSQLサーバーへのリモート接続を確立する方法 クライアント
Red Hat EnterpriseLinux8でのPostgreSQLデータベースの初期化とアクセス
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
PostgreSQL Server 10.5-1.el8 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
ローカルPostgreSQLのインストールとデータベースアクセスのステップバイステップの説明
- PostreSQLサーバーをインストールします。以下の
dnf
を実行します PostreSQLサーバーパッケージのインストールを実行するコマンド:# dnf install postgresql-server
- PostgreSQLデータベースを初期化します:
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- PostgreSQLを起動し、オプションで再起動後に起動できるようにします。
# systemctl start postgresql # systemctl enable postgresql
この時点で、PostreSQLサーバーが稼働し、ローカルホストポート
5432
でリッスンしている必要があります。 。ss
を使用する これが当てはまることを確認するコマンド:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::1]:5432 [::]:*
- PostreSQLデータベースにアクセスします。RHEL8/CentOS8システムにPostgreSQLデータベースをインストールすると、インストーラーは新しいデフォルトユーザー
postgres
も自動的に作成します。 。postgres
のデフォルトのパスワード ユーザーが設定されていないため、空です。 PostgreSQLデータベースにアクセスするには、最初にsu
を実行します rootユーザーとしてコマンドを実行してpostresユーザーに切り替えます。次に、psql
と入力します データベースにログインします。
rootユーザーとしてPostgreSQLデータベースにアクセスしようとすると、psql: FATAL: role "root" does not exist
になります。 エラーメッセージ。例:
# su - postgres $ psql psql (10.5) Type "help" for help. postgres=#
の場合は「help」と入力します <中央>注
PostreSQLデータベースシェルを終了するには、\q
と入力します またはCTRL+d
を押します キーの組み合わせ。
PostgreSQLデータベースのリモートアクセスと安全な接続
-
postgres
のパスワードを設定します user.PostreSQLサーバーにリモートでアクセスするために、最初にpostres
のパスワードを設定します user:# su - postgres $ psql psql (10.5) Type "help" for help. postgres=# \password postgres Enter new password: Enter it again: postgres=# exit postgres-# \q
- PostgreSQLサーバーが利用可能なすべてのネットワークでリッスンできるようにします。メイン構成ファイル
/var/lib/pgsql/data/postgresql.conf
を編集します。 :# nano /var/lib/pgsql/data/postgresql.conf
準備ができたら、接続と認証のどこかに次の行を追加します セクション:
listen_addresses = '*'
警告
上記の構成により、PostreSQLは利用可能なすべてのネットワークでリッスンできるようになります。選択したネットワークからのみPostgreSQLへのアクセスを許可するために、より厳密なルールを設定することをお勧めします。ss
を使用する PostgreSQLが0.0.0.0
をリッスンしていることを確認するコマンド ネットワーク:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::]:5432 [::]:*
- MD5で暗号化されたパスワード認証を有効にします:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- PostgreSQL構成の変更を適用します:
# systemctl restart postgresql
- ファイアウォールポートを開く
5432
リモートPostgreSQL着信トラフィックの場合:# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- リモートの場所からPostgreSQLデータベースサーバーに接続します。最初に
psql
をインストールします。 リモートホスト上のPostgreSQLクライアントツール:RHEL/CENTOS # dnf install postgresql UBUNTU/DEBIAN # apt install postgresql-client
ホストへのリモート接続を作成します。
192.168.1.151
postgres
として 上記のステップ1 で定義されたユーザーとユーザーパスワード :$ psql -h 192.168.1.151 -U postgres Password for user postgres: psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5) Type "help" for help. postgres=#
に「help」と入力します。