我在PostgreSQL服务器中有用户和密码,我可以使用SQL控制台登录,但是当我使用Spring开发应用程序时,我收到错误消息,"用户postgres的密码验证失败" 。
为什么会这样?数据库和应用程序的身份验证不同吗造成这种情况的可能原因是什么?可以给我参考一下。
我搜索了Google的答案,但我还不清楚导致这种情况的原因。感谢
答案 0 :(得分:0)
原因非常明确:您正尝试使用用户“postgres”登录,并且发送了错误的密码(或没有密码)。
postgres
是Postgres数据库的默认/超级用户帐户。确保这是您要连接的用户。
一种方便且经常使用的方法是让~/.pgpass
文件存储您(或您的应用程序)登录的Postgres服务器的凭据。这是described in detail here。该文件的每一行都指定要连接到的给定Postgres服务器的凭据。例如:
localhost:5432:*:postgres:password
devpostgresserver:5432:*:postgres:password123
legitpostgresserver:5432:appdbname:legitpguser:averysecurepassword456
Postgres会在尝试连接时检查此文件,如果找到与其连接的服务器的匹配项,它将使用该行上的凭据登录。
我不确定如何在Spring中指定连接详细信息,但this Spring Boot configuration guide可能有一些有用的信息。它提到:
要使用嵌入式数据库,您不需要任何特殊配置,甚至任何连接URL都不需要。