Ubuntu(さくらVPS)に PostgreSQL をインストールし外部から接続する
さくらVPSの Ubuntu に PostgreSQL をインストールし、外部からデータベースに接続するまでの手順をシェアします。
Ubuntu のバージョン確認
バージョンは、20.04です。以下、コマンドで確認できます。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
PostgreSQLをインストール
サーバにSSHでログインし、以下を実行します。
sudo apt-get update
sudo apt-get install postgresql
最初のコマンドは、パッケージリストを更新し、2番目のコマンドで、PostgreSQLをインストールします。インストールが完了すると、PostgreSQLサーバーが自動的に起動されます。
インストールできたかの確認
PostgreSQLがインストールされている場合には、関連するパッケージの一覧を表示します。
dpkg -l | grep postgresql
PostgreSQLの起動確認
PostgreSQLのサービスが起動しているかどうかを確認するには、次のコマンドを実行します。
systemctl status postgresql.service
PostgreSQLが起動している場合は、 Active: active (exited)
と表示されます。
PostgreSQLのバージョンを確認
以下コマンドで、インストールされているPostgreSQLのバージョン情報が表示されます。
sudo -u postgres psql -c "SELECT version();"
PostgreSQLにログイン
PostgreSQLのデフォルトロールである"postgres"に切り替わり、ログインします。
sudo -u postgres psql
ログアウトする場合
\q
データベース作成
PostgreSQLにログインした状態で、以下コマンド実行でデータベースを作成します。
CREATE DATABASE <データベース名>;
作成したデータベースの確認
\l
次のように表示されます。
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------+----------+----------+-------------+-------------+-----------------------
作成したDB名 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
テーブル作成
以下コマンドでテーブルが作成されます。
CREATE TABLE <テーブル名> (
<列1名> <データ型> <オプション>,
<列2名> <データ型> <オプション>,
...
);
PostgreSQL に外部ネットワークからアクセスするための設定
サーバにSSHログインし、PostgreSQLの設定ファイルを編集します。
sudo vi /etc/postgresql/<PostgreSQLバージョン>/main/postgresql.conf
以下の通り変更し、すべてのIPアドレスからの接続を受け付けるように変更します。
# 変更前
#listen_addresses = 'localhost'
# 変更後
listen_addresses = '*'
次に pg_hba.conf
ファイルを編集します。
sudo vi /etc/postgresql/<PostgreSQLバージョン>/main/pg_hba.conf
全ての外部IPアドレスを許可する場合、以下の行を追加します。
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
接続許可するポート番号を変更するには、次のファイルを編集します。
sudo vi /etc/postgresql/{バージョン番号}/main/postgresql.conf
以下の行を変更します。
# 変更前
#port = 5432
# 変更後 (port 5433 に変更されます)
port = 5433
PostgreSQLを再起動し、設定変更を反映させます。
sudo service postgresql restart
外部からPostgreSQL接続を確認
サーバからログアウトし、以下のコマンドでPostgreSQLにログインできることを確認します。
psql \
--host=<DBのIPアドレス> \
--port=<port番号> \
--username=<username> \
--password \
--dbname=<database name>
以上で、Ubuntu(さくらVPS)に PostgreSQL をインストールし外部から接続するまでが可能になりました。
参考になりましたらうれしいです。
Discussion