postgresql - psql 总是转到端口 5432,即使 2 个版本的 postgresql 运行
postgresql - psql always goes to port 5432, even when 2 versions of postgresql are running
我在 Suse SLES 上有 2 个版本的 postgresql 运行,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 的密码。
我花了相当多的时间寻找这个问题的答案,很抱歉我没有找到任何有用的东西。感谢您的任何建议!
这里有两个问题。
1)
I su to postgres: su - postgres This requires a password, and the password that works here, does not work when psql wants/demands a password.
OS postgres
用户与数据库 postgres
用户不同。
- 全新安装数据库
postgres
用户没有密码。一般来说,用户的 auth
方法设置为 trust
、ident
或 peer
。请参阅此处 pg_hba.conf 它们的含义。解决方案的关键是修改 pg_hba.conf
以允许用户连接以便能够创建密码。最简单的方法是设置一个连接方式,最佳实践local
(socket) to trust
。然后你可以不用密码连接并创建一个。
我在 Suse SLES 上有 2 个版本的 postgresql 运行,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 的密码。
我花了相当多的时间寻找这个问题的答案,很抱歉我没有找到任何有用的东西。感谢您的任何建议!
这里有两个问题。
1)
I su to postgres: su - postgres This requires a password, and the password that works here, does not work when psql wants/demands a password.
OS postgres
用户与数据库 postgres
用户不同。
- 全新安装数据库
postgres
用户没有密码。一般来说,用户的auth
方法设置为trust
、ident
或peer
。请参阅此处 pg_hba.conf 它们的含义。解决方案的关键是修改pg_hba.conf
以允许用户连接以便能够创建密码。最简单的方法是设置一个连接方式,最佳实践local
(socket) totrust
。然后你可以不用密码连接并创建一个。