我正在运行一个 postgresql 服务器(直接在操作系统上 - manjaro linux,没有 docker 或 VM),我想允许外部连接到数据库。当尝试连接时
psql -h [my public ip] -U postgres -d mydb
我收到一个错误
psql: error: connection to server at "89.142.11.241", port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?
几乎所有关于 stackoverflow 的问题都可以通过“编辑 2 个 .conf 文件”来回答(并标记为正确)。这对我的情况没有帮助
我编辑了 postgres.conf(取消注释 Listening_addresses 行并将其更改为“*”)和 pg_hba.conf(将地址更改为 0.0.0.0/0)文件,我的数据库服务器现在正在侦听该端口。路由器和电脑上的防火墙也对该端口开放。当我使用在线端口检查器工具进行测试时,当我启动数据库服务器时,它会检测到端口处于打开状态。 ss -lntp 命令确实显示应用程序正在侦听 0.0.0.0:5432(与 ipv6 类似),但它没有说明哪个进程正在侦听(就像 Discord 或 Spotify 那样)。我确实确保它实际上是 postgres 服务器,因为如果我关闭服务器,该条目就会消失
如果有帮助,这是我启动数据库服务器时的日志
2023-06-25 15:49:33.594 CEST [34822] LOG: starting PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 13.1.1 20230429, 64-bit
2023-06-25 15:49:33.594 CEST [34822] LOG: listening on IPv4 address "0.0.0.0", port 5432
2023-06-25 15:49:33.594 CEST [34822] LOG: listening on IPv6 address "::", port 5432
2023-06-25 15:49:33.594 CEST [34822] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2023-06-25 15:49:33.596 CEST [34825] LOG: database system was shut down at 2023-06-25 15:26:37 CEST
2023-06-25 15:49:33.598 CEST [34822] LOG: database system is ready to accept connections
Все гениальное просто! Скорее всего у Вас при установке почтового сервера скриптами поднялся фаервол, он и блокирует ваше соединение.