PSQL不是在PowerShell中

问题描述:

这PSQL语句在PowerShell中提示密码:PSQL不是在PowerShell中

.\psql --% -h localhost -p 5000 -U postgres -d mydatabase -c ` 
(SELECT * ...... do something); 

作品 - 而不会提示输入密码。

.\psql.exe --help 

指定-w开关不需要密码。

为什么此命令在没有密码的情况下工作?数据库有一个密码。

只有在PowerShell中,该命令才能在没有密码验证的PSQL交互式shell中运行。

-w不需要“无密码”重读它说什么,从我man psql

-w--no-password从不发出密码提示。 如果服务器需要密码验证,并且通过其他方式(如.pgpass文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。请注意,该选项将保持整个会话的设置,因此它会影响元命令\ connect的使用以及初始连接尝试。

-w是为了当你运行psql脚本和输入密码是不可能的,就像在无头会话中一样。

这个命令为什么没有输入密码?数据库有一个密码。

即使数据库密码,如果你的pg_hba.conf文件有信任将不需要密码。要进一步调试,我们需要看到您的pg_hba.conf

+0

此行在IPv4本地连接的pg_hba.conf中:主机所有的所有x.x.x.x密码可能是原因。由于数据库设置为'全部'。谢谢你的帮助。 – Jelphy