我在 Windows 中运行 PostgreSQL。我有一个原始安装,其中包含一个管理员 Windows 用户帐户,我已使用该帐户安装 PostgreSQL 和 pgAdmin III。使用 pgAdmin III,我创建了一个由 postgresql 帐户拥有的数据库。
我有一个需要访问数据库的外部应用程序。我已向该应用程序提供了 postgresql 用户名和密码。
如果我没有通过 pgAdmin III 连接到数据库(数据库上出现红色 X),外部应用程序就无法连接到数据库。一旦我通过 pgAdmin III 连接到数据库,外部应用程序就可以连接。这是一个问题,因为两个程序(PostgreSQL 和应用程序)都作为服务运行,需要能够在服务器重新启动时自动启动和连接(服务器重新启动时两个服务都会正确启动)。
无奈之下,我甚至在通过 pgAdmin III 连接数据库时保存了密码,希望重启后连接能够继续保持,但事实并非如此。
如何设置数据库,以便使用正确的用户名和密码永久登录?最好不要以明文形式保存密码。
答案1
你的问题听起来很奇怪。
首先检查你的 PostgreSQL 是否正在运行。它应该监听一个端口,通常是端口 5432。为此,你可以使用netstat
、TCPView
、ProcessExplorer
。
然后尝试使用psql
(它应该在 PostgreSQL bin 目录中)使用-l
开关列出可用的数据库:
[test:~]# psql -l -U postgres
List of databases
Name | Owner | Encoding
------------------------------------+----------+----------
postgres | postgres | LATIN2
template0 | postgres | LATIN2
template1 | postgres | LATIN2
test | postgres | LATIN2
(用于psql --help
查看各种选项)
然后您可以使用以下命令连接到数据库:
psql -U [user] [database]
尝试一下,看看您是否可以连接到该数据库。也许您的 PGAdmin 启动了 PostgreSQL 服务?
我认为,如果您的外部应用程序在连接数据库时出现问题,那么您必须联系其创建者。也许他们将密码保存在某个配置文件或注册表中。