Postgresqlに顔パスできる方法

# はじめに
個人アプリを作成するにあたり、postgresqlを作成する必要がありました。
Rails＋postgresqlで構成する場合、通常だとDB作成ができないため、本投稿に書いてみました。

## エラーの箇所

```html:terminal
% rails db:create
could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Connection refused
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?
Couldn't create 'Calmania_development' database. Please check your configuration.
rails aborted!
PG::ConnectionBad: could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Connection refused
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?
bin/rails:4:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
```

## エラーの内容
厳密には訳していませんが、ポート５４３２が開放されていないのでエラーが出ていました。

# 原因&考察
mySQLのローカル環境では、`localhost:3000` にアクセスしています。　3000はポート番号
postgresqlはdefaultで`ポート番号：5432`を使います。
通常、ポート解放しないと、その番号は使えません。
恐らく、5432は解放されていないと考えました。

# アクション
postgresqlのポート変更は、Qiitaで記事が結構見られました。
`postgresql.conf`の記述を変えれば、問題が解決することはわかりました。

しかし、古い記事が多いせいか、指定されたファイルの場所が見つかりません。
macのversionはCatalinaで、まずはファイルの場所を探す必要がありました。

```html:Terminal
~ % cd /usr/local/var/postgres

postgres % ls
PG_VERSION		pg_ident.conf		pg_snapshots		pg_wal
base			pg_logical		pg_stat			pg_xact
global			pg_multixact		pg_stat_tmp		postgresql.auto.conf
pg_commit_ts		pg_notify		pg_subtrans		postgresql.conf
pg_dynshmem		pg_replslot		pg_tblspc		postmaster.opts
pg_hba.conf		pg_serial		pg_twophase		postmaster.pid

```

次に、postgresql.confの変更を行います。　
テキストファイルのようなので、`Vim`を使って編集します。

```html:Terminal

postgres % vim postgresql.conf

```
vimを実行すると、中身が見る事ができます。

```html:Terminal

# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#

```

省略してますが、かなりの記述量です。　
ここから、該当する場所を見つけにいきます。

`i`ボタンを押すと、通常モード　⇨ insertモード
中身を変更できるようになります。

↓キーを使い、該当する箇所までスクロールします。

```html:Terminal

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories
                                        # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)
#unix_socket_permissions = 0777         # begin with 0 to use octal notation
                                        # (change requires restart)
#bonjour = off                          # advertise server via Bonjour
                                        # (change requires restart)
#bonjour_name = ''                      

```

ここの　`#listen_assresses = 'localhost'`と`#port = 5432`を変更します。

単純にコメントアウトを消せばいいのですが…

私の場合、できるだけこれまでの環境で作成したいので、`5432 ⇨ 3000`に変更しました。

変更後が、以下になります。

```html:Terminal
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = 'localhost'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 3000                             # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories
                                        # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)
#unix_socket_permissions = 0777         # begin with 0 to use octal notation
                                        # (change requires restart)
#bonjour = off                          # advertise server via Bonjour
                                        # (change requires restart)
#bonjour_name = ''                      # defaults to the computer name
                                        # (change requires restart)
```

`ESC`ボタンを押すと　insertモード ⇨ 通常モード　に戻ります。

通常モードの状態で、`:wq`と記述、実行します。(上書き保存)


この状態で、`rails db:create`を実行しますと

```html:Terminal

rails db:create
Database 'Calmania_development' already exists
Database 'Calmania_test' already exists

```

もう作っているので、already出てますが、作成できるようになりました。
ローカル環境では問題ないでしょうが、デプロイする時にはまた問題が発生するかもしれません。