Postgresql 如何从bash自动化的命令行创建Postgres用户
我正在使用Ubuntu12.04和Postgress9.2 我需要使用此密码创建此用户,例如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
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;\”“
它似乎可以正常工作。