macOSにPostgreSQLをインストールする方法は色々ありますが、Homebrew(パッケージ管理システム)を使うのが一番お手軽なのではないかと思います。この方法でPostgreSQLをインストールするとパスワード入力をスキップする設定がデフォルトとなります。
さてこの設定がどこに書かれているかというと、「brew install postgresql」コマンドを実行するとデフォルトクラスタのファイル一式が「/usr/local/var/postgres」に収められていますので、この中にあるpg_hba.confというファイル(アクセス管理するファイル)に記述があります。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication user trust #host replication user 127.0.0.1/32 trust #host replication user ::1/128 trust
pg_hba.confに書いてあるtrustがパスワード要求されない設定になります。これがmd5やpasswordとなっているとパスワード要求されるので、trustに修正して「brew services restart postgres」でPostgreSQLを再起動するとパスワード入力をパスできるようになります。
それでもどうしてもパスワード要求されて困っているという方は、いっそのこと新たにクラスタを作成することをおすすめします。クラスタを作成する中でスーパーユーザーのパスワードを設定するようにしておけば、万が一パスワード要求されても指定したパスワードでなんとかなります。
新たにクラスタを作成し、スーパーユーザーにパスワードを設定しておく手順
- デフォルトクラスタのプロセスを停止してください。
$ brew services stop postgres
- 新たに作るクラスタの配置場所を環境変数にセットしてください。
$ export PGDATA=/usr/local/var/postgres_2
- クラスタを作成します。
pg_ctlの「-o」オプションを付けると「’」か「”」で囲んだ部分を別途オプションとして渡せます。
「-E」オプションでデータベースの文字コードをutf8に、「-U」オプションでスーパーユーザー名(postgres)を指定しています。「-U」オプションを省略するとOSのログインユーザー名がスーパーユーザー名になります。「-W」を付けるとことでスーパーユーザーのパスワード設定のプロンプトが表示されるようになります。$ pg_ctl initdb -o “-E utf8 -U postgres -W” - 新たに作成したクラスタでPostgreSQLを起動する。
$ pg_ctl -D /usr/local/var/postgres_2 -l logfile start
以上でPostgreSQLにスーパーユーザー(postgres)でパスワードなしに接続できるようになるはずです。もしパスワードを要求されても手順3で設定したパスワードで接続することもできます。