无法使psql命令在bash脚本中运行

时间:2019-02-10 18:45:52

标签: bash postgresql psql

我是bash脚本的新手,所以请多多包涵。我正在尝试编写脚本来使用psql执行sql文件。在我的终端上,它工作正常:

psql -f /path/to/file.sql "$URI"

但是,在我的脚本中,我有这样的东西:

dbURI="postgres://some.connection.string"
psql -f /path/to/file.sql $dbURI

但是我一直这样输出:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我似乎根本无法使它正常工作。我试过使用$(command)等将变量括在引号中,但没有运气。

2 个答案:

答案 0 :(得分:0)

尝试在脚本中使用以下内容禁用通行

psql -f /path/to/file.sql "$dbURI"

答案 1 :(得分:0)

我刚刚遇到了同样的问题,错误消息完全相同。问题是 Postgresql 需要几秒钟才能启动。因此,如果您启动 postgresql 并在同一脚本中使用 psql 命令,则很可能在您调用它时 postgre 尚未启动。

解决方案包括:

sleep 5

在 psql 命令之前。在您的情况下,这将是:

sleep 5
psql -f /path/to/file.sql "$URI"

这给了 postgre 在你使用它之前启动的时间。

我看到这个话题已经有 2 年了,但以防万一其他人面临同样的问题。