Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何从bash自动化的命令行创建Postgres用户_Postgresql_Ubuntu_Postgresql 9.2 - Fatal编程技术网

Postgresql 如何从bash自动化的命令行创建Postgres用户

Postgresql 如何从bash自动化的命令行创建Postgres用户,postgresql,ubuntu,postgresql-9.2,Postgresql,Ubuntu,Postgresql 9.2,我正在使用Ubuntu12.04和Postgress9.2 我需要使用此密码创建此用户,例如 postgres://admin:test101@127.0.0.1:5432 如何从命令行执行此操作?我需要用bash脚本实现自动化。我有一个新安装。这将在本地主机上创建密码为test101的用户管理员: psql -c "CREATE USER admin WITH PASSWORD 'test101';" 要从任何用户运行它,只需向其添加sudo-u postgres: sudo -u pos

我正在使用Ubuntu12.04和Postgress9.2

我需要使用此密码创建此用户,例如

postgres://admin:test101@127.0.0.1:5432

如何从命令行执行此操作?我需要用bash脚本实现自动化。我有一个新安装。

这将在本地主机上创建密码为test101的用户管理员:

psql -c "CREATE USER admin WITH PASSWORD 'test101';"

要从任何用户运行它,只需向其添加
sudo-u postgres

sudo -u postgres bash -c "psql -c \"CREATE USER vagrant WITH PASSWORD 'vagrant';\""

如果您是从根目录运行的,则可能会出现如下错误:
无法将目录更改为“/root”:权限被拒绝

因此,最好使用
-i
运行sudo,如下所示:

sudo-i-u postgres psql-c“使用密码'myuser1234'创建用户myuser;”“

在原始docker映像上运行它,例如,您可以将
su-c
命令与
postgres
用户结合使用psql:

su -c "psql -c \"CREATE ROLE my_user WITH LOGIN PASSWORD 'my_password' \"" postgres

psql-c“使用密码'passo'创建用户khophi;”psql:FATAL:role“khophi”不存在这是我收到的错误消息。为什么?@Rexford我不再使用Postgresql了。我假设psql试图使用您的用户名连接到数据库,但您并没有在数据库中创建任何这样的用户。这是新安装的吗?如果你在Ubuntu上,试试这个新安装的(替代安装)。我在Ubuntu维基百科上遵循了postgresql安装指南,以供将来参考。运行命令时,postgres需要一个用户来执行查询。要设置与登录用户不同的用户(在本例中为khophi),应使用-U标志。例如psql-U postgres-c“…”。重新安装后,您有一个名为postgres的默认超级用户,没有密码。在ubuntu中,您应该执行以下操作:$>sudo su$>su postgres$>psql-c“…#现在以postgres用户sudo su postgres的身份运行。不需要经过根状态。@knocte您可能是对的。您在没有它的情况下测试过它吗?
sudo-u postgres“psql-c\”使用密码“vagrant”创建用户vagrant;\”“
它似乎可以正常工作。