如何调用psql以使它不提示输入密码?

这是我所拥有的:

psql -Umyuser < myscript.sql

但是,我找不到传递密码的参数,所以psql总是提示输入这个参数。


当前回答

你可能会发现这很有用:Windows PSQL命令行:是否有一种方法允许无密码登录?

其他回答

只需使用PGPASSWORD即可完成。我使用的是psql 9.5.10。对你来说,解决办法是

PGPASSWORD= psql -U myuser密码< myscript.sql密码

8年后……

在我的mac上,我必须在文件中添加一行 ~ /。pgpass:

<IP>:<PORT>:<dbname>:<user>:<password>

还看到: https://www.postgresql.org/docs/current/libpq-pgpass.html https://wiki.postgresql.org/wiki/Pgpass

在命令中使用-w: psql -h localhost -p 5432 -U user -w

如果您打算拥有多个主机/数据库连接,则~/。Pgpass文件是可行的。

步骤:

Create the file using vim ~/.pgpass or similar. Input your information in the following format: hostname:port:database:username:password Do not add string quotes around your field values. You can also use * as a wildcard for your port/database fields. You must chmod 0600 ~/.pgpass in order for it to not be silently ignored by psql. Create an alias in your bash profile that runs your psql command for you. For example:alias postygresy='psql --host hostname database_name -U username' The values should match those that you inputted to the ~/.pgpass file. Source your bash profile with . ~/.bashrc or similar. Type your alias from the command line.

注意,如果设置了export PGPASSWORD= "变量,它将优先于文件。

你可以在脚本的开头添加这个命令行:

export PGPASSWORD="[your password]"