Windows PSQL命令行:有没有办法允许无密码登录?

A Q*_*ker 21 windows postgresql

我的目标是能够在不必提示输入密码的情况下触发命令.有没有办法从Windows命令行实现这一点?在Linux中我觉得我可以将密码发送到标准或其他东西,但我不确定我是否可以为Windows执行此操作.

谢谢!

Grz*_*ski 22

有两种方法:

  • 设置环境变量PGPASSWORD例如 set PGPASSWORD=yoursecretpassword
  • 使用密码文件%APPDATA%\postgresql\pgpass.conf,如文档中所述

在密码文件中(我的位置是C:\ Users\Grzesiek\AppData\Roaming\postgresql\pgpass.conf)使用doc格式指定.例如,要将数据库postgres连接为本地5432服务器上的角色postgres,请添加:

localhost:5432:postgres:postgres:12345
Run Code Online (Sandbox Code Playgroud)

我检查了这个并且效果很好(对我来说),但是不要使用127.0.0.1).


leo*_*loy 12

另一个方便的选项(特别是如果您的PG服务器在您自己的客户端计算机上运行,​​如果这不会给您带来任何安全问题)是允许在服务器中无密码登录("信任"身份验证模式).

例如,此行pg_hba.conf(在您的DATA目录中,典型位置C:\Program Files\PostgreSQL\9.0\data\:)从本地计算机授予无密码访问权限.

host     all     all     127.0.0.1/32    trust
Run Code Online (Sandbox Code Playgroud)

然后,连接

  psql.exe -h 127.0.0.1 -U postgres -w [YOUR_DB_NAME]
Run Code Online (Sandbox Code Playgroud)


小智 5

我知道这是一个老问题,但对于像我这样的人来说,很难找到适用于 Windows 的解决方案。将其粘贴在 .bat 文件中,它将起作用(至少对我来说是这样)。将director更改为postres目录,设置环境变量,PGPASSWORD执行复制命令到csv文件,然后清除环境变量,然后返回根目录。

cd C:\Program Files\PostgreSQL\9.5\bin\

set PGPASSWORD=yourpassword


psql -d databasename -U yourusername -w -c "\COPY (select * from yourtable) TO 'c:/Users/yourdirectory/yourcsvfilename.csv' DELIMITER '|' CSV HEADER;"

set PGPASSWORD=

cd c:\
Run Code Online (Sandbox Code Playgroud)