我在PostgreSQL服务器中有用户和密码,我可以使用SQL控制台登录,但是当我使用Spring开发应用程序时,我收到错误消息“用户postgres的密码验证失败”。
为什么会这样?数据库和应用程序的身份验证不同吗造成这种情况的可能原因是什么?可以给我参考一下。
我搜索谷歌的答案,但我仍然不清楚是什么导致了这一点。谢谢
原因非常明确:您正在尝试使用用户“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。