Dockerで作ったpostgreSQLへの外部クライアントからのアクセス方法
「DockerのpostgreSQLの起動方法」で、postgreSQL(ポスグレ)サーバは作れたのは良かったのですが、クライアント(例 pgAdmin4)からアクセスできないことが分かりました。どうやら原因は、パスワードがない、ということのようです。fe_sendauth: no password suppliedが消えません。
私は、CとかGoのプログラムから、ポスグレを使おうとしていますが、pgAdmin4からアクセスできないとなると、多分、「CとかGoのプログラムからは動せない」と思いました。
ロールやらなんやらを追加する方法もあるようですが、私は、ポスグレの運用は、できるだけ手を抜きたいし、そもそもポスグレを外部公開する予定はないので、セキュリティもスカスカでかまいません(もちろん、SSHなんぞも不要)。
そこで、Dockerのポスグレにパスワード("c-anemone")を追加しました。
C:\Users\ebata>docker start -a postgres122
C:\Users\ebata>docker container exec -it postgres122 bash
root@19e323b3f7c1:/# psql -U postgres
とした状態で、
postgres=# alter role postgres with password 'c-anemone';
と打ち込んだ後、psqlからログアウトして、別のコンソールから、
C:\Users\ebata>docker stop postgres122
C:\Users\ebata>docker start -a postgres122
と再起動をしました。
その後、pgAdmin4のCreateの設定画面にパスワードを入力したら、
さくっとログインできました。