当尝试连接到PostgreSQL时,遇到“psql: error: 无法连接到服务器套接字“/tmp/.s.PGSQL.5432”处的错误时的解决方法为:
生成的错误有以下两个选项:
-
- 「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 | {}
我认为有更聪明的方法,但我用这种方式解决了。
我会更加努力。。。
请参考以下内容: