在postgres中无法识别主机



我们在日志

中看到一个问题
FATAL:  lock file "/tmp/.s.PGSQL.5432.lock" already exists
HINT:  Is another postmaster (PID 4696) using socket file "/tmp/.s.PGSQL.5432"?
LOG:  could not bind IPv4 socket: Address already in use

我们已经删除了/tmp/. s.pgsql .5432。锁

我们重新启动了postgres服务

但是psql -h localhost -d database -U newuser

显示错误角色'newuser'不存在

但是如果没有主机连接

psql -d database -U newuser

它工作了,我们如何使用主机选项?

是否有我们,遗漏的东西后删除tmp文件?

与上一个相同,您在机器上运行了两个PostgreSQL实例。

删除套接字文件而不是关闭实例。这允许启动第二个实例,但它只监听unix套接字。假设listen_addresses是未设置的/空的,所以它不会尝试绑定到TCP/IP套接字,因为如果它尝试绑定并且端口5432已经在使用,它会失败。

另一个实例仍然在运行,并且仍然在端口5432上侦听TCP/IP连接。当你指定-h localhost时,你会得到一个TCP/IP连接,而不是默认的unix套接字连接,所以你正在连接到系统上的其他PostgreSQL实例。

你所有的问题都是由删除和删除东西引起的,而不是识别潜在的问题-第二个PostgreSQL实例-并解决它。

最新更新