IT初学者部

プログラミングに関することを中心に、備忘録として残していきます。

Ubuntuに構築したPostgreSQLのデータベースに外部から接続する(さくらVPS)

はじめに

ubuntuで構築したDBに接続する設定手順です。

centOSでやったはずだし大して手順変わるわけでもないのに、めちゃくちゃ調べまくったので備忘録として残していきます。本当に。

VPSのほうの設定等

まず、ポート番号5432を開放します。

f:id:hirm159:20220314192325p:plain

パケットフィルターの方の設定を変更してあげてください。

次に、ファイアウォールの設定を変更します。

sudo ufw status

これでファイアウォールの状況を確認できます。

非アクティブになっていると思うので、以下のコマンドで有効化します。

 sudo ufw enable

次コマンドでリロードします。

sudo ufw reload

再度、statusを確認するコマンドを入力してみます。ここでポート開放されているのがどこなのか確認できます。

ポート番号5432を開放する場合は、以下のコマンドを入力します。

sudo ufw allow 5432

5432のところを、開放したい番号に変えれば開放できます。

次に、PostgreSQLの設定を変更します。

PostgreSQLの設定等

以下のコマンドを入力し、設定ファイルを編集します。

vim /etc/postgresql/14/main/pg_hba.conf

14のところを、インストールされたPostgreSQLのバージョンに変えれば設定可能です。

vimコマンドでファイルを設定します。初見だとイマイチやり方がわからないと思うんですが、 iでインサート(編集)、xで字を消す、escで編集モードを閉じる、:wqでファイルを保存、くらいを覚えておけばOKです。(詳しくはググったほうがいいです。)

これでIPv4の設定を変更します。address, methodを編集してください。 addressには接続を許可したいIPを、METHODには許可したい方法を入力します。

たとえば、IPは自分のローカル環境、METHODはtrustやSHA-256、MD5等を設定できます。自分に合わせた設定をしてください。

次に、別の設定ファイルを変更します。

vim /etc/postgresql/14/main/postgresql.conf

こちらでは、以下の場所を変更してください。

# - Connection Settings -

# listen_addresses = 'localhost'

これを

# - Connection Settings -

listen_addresses = '*'

これに変更してください。

変更後、以下のコマンドでPostgreSQLを再起動します。

sudo /etc/init.d/postgresql restart

A5M2で接続してみる

A5M2を起動し、「データベースの追加と削除」から「追加」を選択し、PostreSQLを選択します。

その後、サーバ名、データベース名、ユーザID、パスワードを入力し、「テスト接続」を選択してください。

「接続が成功しました!」と表示されていれば、設定完了です。

f:id:hirm159:20220314193730p:plain

終わりに

ここまで設定するの割と大変でした。調べながら進めていったんですが、その中でもインターネットという人類の英知を借りなければ設定できなかったと思います。ブログ記事等を残しているすべての人々に改めて感謝したいと思います。

とりあえずこれで設定できたので、WEBアプリなどを作成する際にデータベースを用意しやすくなると思います。実際の業務として使えるかは微妙なラインですが、趣味だったり勉強でプログラミングしてアプリを作るのにはちょうどよいと思いますのでぜひやってみてください。

参考にさせて頂きました

ufwを使ったポート開放のやり方 - レミィログのブログ

Ubuntuのファイアウォールを設定する - Qiita

WSL2 上の postgresql サーバーに windows10 から A5:SQL Mk-2 を使って接続する

【PostgreSQL】外部からデータベースへ接続するためのアクセス制御設定 | 電算星組

PostgreSQLの起動と停止のやり方(On Ubuntu) - 小さい頃はエラ呼吸

pg_hba.confというファイルが見つからない