当我询问
时,我需要为此命令两次输入密码createuser -h localhost -P -p 5432 -s -d -r -e postgres
我试过
createuser -h localhost -P -p 5432 -s -d -r -e postgres < temp.txt
temp.txt
包含
密码
密码
它仍然要求输入密码
有什么建议吗?
答案 0 :(得分:3)
createuser
程序可能与终端建立自己的连接,而不是从其标准输入读取,这是密码所关注的常见行为。使用SQL CREATE ROLE
而不是createuser
:
echo "CREATE ROLE postgres CREATEROLE CREATEDB SUPERUSER PASSWORD 'password';" \
| psql -h localhost -p 5432 databasename
其中“databasename”是数据库的名称。
来自fine manual:
createuser是SQL命令CREATE ROLE的包装器。通过此实用程序创建用户和通过其他方法访问服务器之间没有任何有效区别。