我有两个版本的postgresql运行在Suse SLES,9.6和10.7上。9.6版本在端口5432上运行,10.7版本在端口5433上运行。每个版本的所有可执行文件都在该版本的目录中,包括psql。
如果我执行默认的psql,将得到9.6.3版本的psql:
psql (9.6.3)但是,当我尝试为10.7版本执行psql时:
/usr/pgsql-10/bin/psql它打开10.7版本,但从postgresql 9.6.3中读取:
psql (10.7, Server 9.6.3).如果我想给它10.7的端口号:
/usr/pgsql-10/bin/psql -p 5433它需要一个密码,但拒绝我所知道的用户postgres在其他上下文中使用的密码。
我花了相当长的时间去寻找这个问题的答案,很抱歉我没有发现任何有用的东西。谢谢你的建议!
发布于 2022-02-16 16:29:05
这里有两个问题。
1)
我到postgres: su - postgres -这需要一个密码,而在这里工作的密码在psql想要/要求一个密码时不起作用。
OS postgres用户与数据库postgres用户不一样。
postgres用户没有密码。一般来说,用户的auth方法被设置为trust、ident或peer。看这里,hba.conf,他们的意思。解决方案的关键是修改pg_hba.conf以允许用户连接以便能够创建密码。最简单的方法是设置连接方法,最佳实践local(套接字)到trust。然后,您可以连接没有密码,并创建一个。https://stackoverflow.com/questions/71131262
复制相似问题