使用保存的密码

时间:2015-10-28 11:27:58

标签: postgresql unix psql

我正在使用远程Unix机器,我从本地机器通过SSH连接。在另一台主机上有一个Postgres数据库,我需要使用psql从我的远程机器连接。

我希望能够从输入文件运行查询并将结果保存到输出文件,但是我没有设法自动设置密码,超出了每次运行查询时都需要这样做。< / p>

我尝试了以下内容:

  1. 运行

    psql "user=username password=password host=hostname port=port dbname=database"`
    

    包含我的usernamepasswordhostnameportdatabase值。 这工作正常但我没有找到为输入/输出文件添加参数的方法(不需要通过Postgres交互式环境)。

  2. 根据another SO question,我创建了一个文件~/.pgpass,其格式如下:hostname:port:database:username:password

    然后chmod 0600 ~/.pgpass但是在连接时:psql -h hostname -U username -d database -w psql忽略了这一点(我收到了以下失败的身份验证消息。)

      

    psql:fe_sendauth:未提供密码。

    请注意,我的远程计算机的名称与我的用户名不同,因此在创建.pgpass文件时也可能会出现问题。还有其他办法吗?

  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

这工作正常,但我找不到添加参数的方法   输入/输出文件

您可以将输入文件重定向到psql,也可以在-f选项中指定它:

psql < input.sql
psql -f input.sql

对于输出文件,只需将psql的输出重定向到它:

psql -f input.sql > output.txt