如何调用psql以使它不提示输入密码?
这是我所拥有的:
psql -Umyuser < myscript.sql
但是,我找不到传递密码的参数,所以psql总是提示输入这个参数。
如何调用psql以使它不提示输入密码?
这是我所拥有的:
psql -Umyuser < myscript.sql
但是,我找不到传递密码的参数,所以psql总是提示输入这个参数。
当前回答
这可能是一个老问题了,但是你可以使用一个没有人提到过的替代方法。可以在连接URI中直接指定密码。文档可以在这里找到,也可以在这里。
你可以在提供给psql的连接URI中直接提供你的用户名和密码:
# postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
psql postgresql://username:password@localhost:5432/mydb
其他回答
只需使用PGPASSWORD即可完成。我使用的是psql 9.5.10。对你来说,解决办法是
PGPASSWORD= psql -U myuser密码< myscript.sql密码
你必须创建一个密码文件:更多信息请参见http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html。
8年后……
在我的mac上,我必须在文件中添加一行 ~ /。pgpass:
<IP>:<PORT>:<dbname>:<user>:<password>
还看到: https://www.postgresql.org/docs/current/libpq-pgpass.html https://wiki.postgresql.org/wiki/Pgpass
你可能会发现这很有用:Windows PSQL命令行:是否有一种方法允许无密码登录?
在Windows上工作的url字符串和使用psql选项的组合:
> psql -d postgresql://username:password@localhost:5432/mydb -f myscript.sql
传递没有-d的命令没有工作,只是连接到数据库,但没有执行脚本