如何启动psql.exe

时间:2017-12-02 10:00:10

标签: windows postgresql psql

我是postgresql的新手(pg)。据我所知,为了与pg交互,我必须使用psql.exe。

在我的系统中,我发现psql.exe不是一次,而是两次,为什么? (C:\Program Files (x86)\pgAdmin 4\v2\runtime\psql.exeC:\Program Files\PostgreSQL\10\bin\psql.exe)。我试过两个,结果相同(负面)。

与Q / A In PostgreSQL why does command line window disappear when I press Enter after entering my password?一致,我现在不是直接运行psql.exe,而是先打开一个通用(Windows)命令窗口,然后在这个通用命令窗口中运行psql.exe;然后我输入了密码并输入。

在通用(Windows)命令窗口中,我现在收到消息:

  

psql:无法连接到服务器:权限被拒绝(0x0000271D / 10013)
   服务器是否在主机上运行" localhost" (:1)并接受端口5432上的TCP / IP连接?   致命:用户"用户"

的密码验证失败

这对应于上面引用的Q / A中描述的问题(但未解决)。此论坛中的其他主题re pg密码失败涉及密码更改后的Linux /过期密码/新密码。

它在其他帖子中说过这个问题,在Windows中,有一个文件pgpass.conf。我找到一个帮助文件libpq-pgpass.html,它也说,在我的系统上,没有这样的文件pgpass.conf(或其他任何" pgpass"除了前面提到的html文件)。 / p>

(W10教授64位英语)

第二战略:

在StartMenu中,有一个条目" PostgreSQL&#34 ;;在那下 - 由Enter提供 - 有一个子条目" SQL Shell(psql)&#34 ;;所以我试过了。

仅从那里,我得到了Windows cmd窗口,其中包含" psql 10.1"并且(在[]中显然是默认值):

Server [localhost]: I enter localhost; 
Database [postgres]: I enter postgres; 
Port [5432]: I enter 5432; 
Username [postgres]: I enter postgres; 
Password for user postgres: I enter the password which is "a".

从那里,我得到一个警告,控制台代码页与Windows代码页不同,但我得到了psql提示

postgres=#

哪个有效。

另一方面,通过上面的第一个策略,我只得到"密码:"然后,在输入真实密码(即" a")之后,"致命"错误"用户" A""。

的密码验证失败

安装完成后,我创建了一个超级用户" postgres"用密码" a"而不是用户" A&#34 ;;另一方面,我是用户" A"这是我的Windows管理员(!)帐户(我的电脑上没有其他用户)和我通常得到的cmd提示符(" C:\ Users \ A>"); (但正如预期的那样)如果我从提示符输入psql.exe的完整路径,那么没有不同的结果" C:>"。

所以我的问题现在归结为:当从开始菜单中触发时,psql.exe正常工作,因为它询问了我可以正确回答的所有问题(如上所述),而当它以完整路径启动时从cmd窗口(两个完整路径尝试并包含在""当然)中,它只是要求输入密码"然后告诉我,对于一些"用户A",该密码是错误的。

此外,开始菜单中(运行)psql.exe的完整路径是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PostgreSQL 10\psql.exe,如果我尝试使用cmd窗口运行它,我会得到"(路径)不被识别为内部或外部命令,可操作程序或批处理文件。",因为在那里,它的SQL Shell(psql).lnk",其属性是:"目标:" C:\ Program Files \ PostgreSQL \ 10 \ scripts \ runpsql.bat""。

所以这是解决方案,请参阅下面的答案。

2 个答案:

答案 0 :(得分:6)

您不运行某些psql.exe文件,而是运行文件C:\ Program Files \ PostgreSQL \ 10 \ scripts \ runpsql.bat,例如以编程方式运行,例如来自AHK:

运行,“C:\ Program Files \ PostgreSQL \ 10 \ scripts \ runpsql.bat”

然后你会得到一个通用的Windows命令窗口,它会询问你正确的问题(见上文),并在正确回答时为你提供psql命令提示符。

答案 1 :(得分:0)

首先打开命令提示符(Winkey+R),然后键入C:\Program Files\PostgreSQL\10\bin\psql.exe,然后按Enter键并输入密码。这与您在收到错误后未关闭psql.exe时所做的不同。

看到错误后,请仔细阅读并查找SO或google(甚至是手动文档)中的解决方案。如果你仍然失败 - 发布另一个问题。