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

这是我所拥有的:

psql -Umyuser < myscript.sql

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


当前回答

这也适用于其他postgresql cliis,例如你可以在非交互模式下运行pgbench。

export PGPASSWORD=yourpassword
/usr/pgsql-9.5/bin/pgbench -h $REMOTE_PG_HOST -p 5432 -U postgres -c 12 -j 4 -t 10000 example > pgbench.out 2>&1 &

其他回答

我发现,即使你定义了PGPASSWORD变量,psql显示密码提示,但你可以指定-w选项为psql省略密码提示。

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

你必须创建一个密码文件:更多信息请参见http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html。

如果您打算拥有多个主机/数据库连接,则~/。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= "变量,它将优先于文件。

如果你像我一样在windows上遇到问题(我使用的是windows 7 64位),设置PGPASSWORD=[Password]不工作。

然后,正如Kavaklioglu在其中一条评论中所说,

export PGPASSWORD=[password]

您需要将其保存在文件的顶部,或者在任何使用之前,以便在调用之前设置它。

当然可以在windows上工作:)