【问题标题】:Postgres - How to use psql to create a database with the -c command and password authentication?Postgres - 如何使用 psql 通过 -c 命令和密码验证创建数据库?
【发布时间】:2014-02-24 17:40:48
【问题描述】:
如果我运行以下命令:
psql -h localhost -U admin -c "CREATE DATABASE sales OWNER admin;"
返回:
psql FATAL:数据库“admin”不存在
我需要使用密码验证并设置 .pgpass 如下:
localhost:*:*:admin:admin
有什么想法吗?
【问题讨论】:
标签:
postgresql
authentication
command-line
passwords
psql
【解决方案1】:
默认情况下,当你以用户身份连接时,所连接的数据库是与用户同名的数据库。
如果您想连接到不同的数据库,您必须在psql 命令行中指定它。由于在这种情况下您正在尝试创建数据库,但您还无法连接到它,您必须连接到另一个已经存在的数据库(例如 template1 或 postgres)。
例如
psql -h localhost -U admin template1 -c "CREATE DATABASE sales OWNER admin;"
^^^^^^^^^