当尝试连接到PostgreSQL时,遇到“psql: error: 无法连接到服务器套接字“/tmp/.s.PGSQL.5432”处的错误时的解决方法为:

生成的错误有以下两个选项:

    1. 「psql:错误:与套接字”/tmp/.s.PGSQL.5432″上的服务器连接失败:致命错误:角色”用户名”不存在」

 

    「psql:错误:与套接字”/tmp/.s.PGSQL.5432″上的服务器连接失败:没有该文件或目录。服务器是否在本地运行,并接受该套接字上的连接?」

很久没有使用PostgreSQL了,尝试使用以下代码进行连接时,出现了上述的第一个错误…

psql -U ユーザー名

当我尝试查看数据库列表时,上述的第二个错误被输出了出来。。。

psql -l

一旦确认Postgres是否已安装,即已安装

~ $ psql --version
psql (PostgreSQL) 14.6 (Homebrew)

确认能否启动并且确认能够启动。

~ $ brew services start postgresql
Warning: Use postgresql@14 instead of deprecated postgresql
==> Successfully started `postgresql@14` (label: homebrew.mxcl.postgresql@14)

只是我一直认为没有启动。。。

~ $ brew services list
postgresql@14 error

在终端中,使用命令”cd /usr/local/var/log/postgresql@14.log”来查看日志内容。

Reason: tried: '/usr/local/opt/icu4c/lib/libicui18n.72.dylib' (no such file)

我通过以下命令检查ICU4C的版本,发现它是69系。

brew info icu4c

尝试升级Homebrew以将icu4c更新为72系。

brew upgrade icu4c

再次检查icu4c的版本,发现已更改为72系。

brew info icu4c

查看了再次的DB列表后,确认可以看到(※列表仅为示例)。

~ $ psql -l
                                          List of databases
      Name       |      Owner      | Encoding | Collate | Ctype |          Access privileges
-----------------+-----------------+----------+---------+-------+-------------------------------------
 postgres        | postgres        | UTF8     | C       | C     |
(7 rows)

尝试使用用户名连接(※使用上述的“Owner”名称连接),如果连接成功。

~ $ psql -U postgres
psql (14.6 (Homebrew))
Type "help" for help.

postgres=#

当查看角色列表时,可以查看到已注册的角色名称。

postgres=# \du
                                      List of roles
    Role name    |                         Attributes                         | Member of
-----------------+------------------------------------------------------------+-----------
 postgres        | Superuser, Create role, Create DB                          | {}
 

我认为有更聪明的方法,但我用这种方式解决了。
我会更加努力。。。

请参考以下内容:

 

bannerAds