Postgres - 如何使用psql使用-c命令和密码身份验证创建数据库?

时间:2014-01-31 21:07:23

标签: postgresql authentication command-line passwords psql

如果我运行以下内容:

psql -h localhost -U admin -c "CREATE DATABASE sales OWNER admin;"

它返回:

  

psql FATAL:数据库“admin”不存在

我需要使用密码验证并设置.pgpass如下:

localhost:*:*:admin:admin

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,当您以用户身份连接时,连接到的数据库是与用户同名的数据库。

如果要连接到其他数据库,则必须在psql命令行中指定它。由于在这种情况下您正在尝试创建数据库,因此无法连接到该数据库,您必须连接到已存在的另一个数据库(如template1postgres)。

E.g。

psql -h localhost -U admin template1 -c "CREATE DATABASE sales OWNER admin;"
                           ^^^^^^^^^