koheitakahashiのブログ

2020.07.01にプログラマーとして生を受けた私が学んだことや、日常について徒然に書いていきます。

PostgreSQL、データベースユーザーの設定から外部接続まで💪

データベースユーザーの設定をしましょう。

まずは、PostgreSQLをインストールしたサーバー側で、

$ su - postgres

コマンドにて、ユーザーを切り替えます。

「あれ、パスワードが分からない😰」という方、いませんか? 私もそうでしたが、postgresユーザーへの切り替えの際にパスワードが分からず、切り替えができませんでした。

そういう方は 

$ sudo passwd postgres

コマンドで、パスワードを再設定してみてください。

そしたら、postgresユーザーに切り替えて、データベースユーザーの追加を行います。

$ createuser --pwprompt --interactive ユーザー名

でユーザーの追加ができます。

  • --pwprompt:このオプションが指定されると、パスワード認証が可能になります。
  • --interactive:ユーザー名の入力を促すオプションです。

ここまでが完了したら、追加したユーザーでログインしてみましょう💪

$ psql -U ユーザー名 -d postgres -h localhost
  • -U:次に指定されるユーザー名でデータベースに接続するためのオプションです。
  • -d:次に指定されるデータベース名で接続するためのオプションです。
  • -h:マシンのホスト名を指定するためのオプションです。

上記のコマンドを実行して、 postgres=# と表示されればOKです😆

外部接続の設定をしましょう!!

外部接続とは、ローカル(ここでは自分のMac)で、PostgreSQLを使ってサーバーのデータベースに接続することです!!

postgresql.confファイルを編集します。

PostgreSQLの設定が記述されている、postgresql.confをviで編集します。

※psqlモードではなく、Postgresユーザーで行いましょう。psqlモードは\qで終了できます。

また、ここでは、postgresユーザーのroot権限でコマンドの実行を行なってください🙏

# vi /etc/postgresql/11/main/postgresql.conf

ここで、

--Connection Settings-(60行目あたり)の中の

listen_addresses = 'localhost'   

となっているところを

listen_addresses = '*'   

と変更を加えてください。

#を消すのを決して忘れないでください。設定が反映されないので!!!

pg_hba.confファイルを編集します。

次に以下のコマンドで、pg_hba.confファイルを編集します。

# vi /etc/postgresql/11/main/pg_hba.conf

90行目あたりの

# IPv4 local connections:
host    all             all             IPアドレス            md5

のところに、

# IPv4 local connections:
host    all             all             IPアドレス             md5
host    all             all             自分のIPアドレス/0 md5

と新たに自分のIPアドレスを追加してください。 これが認証されるIPアドレスになります。

ここまで編集ができたら

# /etc/init.d/postgresql restart

で再起動を行いましょう。

外部接続を試します

自分のMac側で以下のコマンドを実行し、外部接続を試します。このコマンドの意味は前回の記事を参考にしてください🙇‍♂️

# psql -U ユーザー名 -d postgres -h ホスト名(さくらVPSの)

これで、postgresユーザーのパスワードを入力し、ターミナル画面で

postgres=# 

と表示されれば、外部接続完了です😆

今回は、データベースユーザー設定から、外部接続までを自分なりにまとめてみました🙇‍♂️

参考サイト等

-Debian 8.7(Jessie)にPostgreSQL 9.6をインストールし、外部接続を許可する