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