如何调用psql以使它不提示输入密码?
这是我所拥有的:
psql -Umyuser < myscript.sql
但是,我找不到传递密码的参数,所以psql总是提示输入这个参数。
如何调用psql以使它不提示输入密码?
这是我所拥有的:
psql -Umyuser < myscript.sql
但是,我找不到传递密码的参数,所以psql总是提示输入这个参数。
当前回答
使用PGPASSWORD环境变量的替代方法是根据文档使用conninfo字符串
指定连接参数的另一种方法是在conninfo中 字符串或URI,用来代替数据库名称。这 机制使您可以对连接进行非常广泛的控制。
$ psql "host=<server> port=5432 dbname=<db> user=<user> password=<password>"
postgres=>
其他回答
我发现,即使你定义了PGPASSWORD变量,psql显示密码提示,但你可以指定-w选项为psql省略密码提示。
如果你像我一样在windows上遇到问题(我使用的是windows 7 64位),设置PGPASSWORD=[Password]不工作。
然后,正如Kavaklioglu在其中一条评论中所说,
export PGPASSWORD=[password]
您需要将其保存在文件的顶部,或者在任何使用之前,以便在调用之前设置它。
当然可以在windows上工作:)
你可能会发现这很有用:Windows PSQL命令行:是否有一种方法允许无密码登录?
在Windows上工作的url字符串和使用psql选项的组合:
> psql -d postgresql://username:password@localhost:5432/mydb -f myscript.sql
传递没有-d的命令没有工作,只是连接到数据库,但没有执行脚本
8年后……
在我的mac上,我必须在文件中添加一行 ~ /。pgpass:
<IP>:<PORT>:<dbname>:<user>:<password>
还看到: https://www.postgresql.org/docs/current/libpq-pgpass.html https://wiki.postgresql.org/wiki/Pgpass