通过pgdump将数据库从另一台服务器导入9.3.5安装,我在访问postgreSQL的命令行时遇到了一些错误。
例如:
sudo su - postgres
psql -d template1
允许我查看用户\du
到\list
数据库,但如果我说明,根据文档:
CREATE USER michaelrodent
或
CREATE ROLE donatoquack WITH LOGIN PASSWORD 'spltfrzspltrz'
\du
仅列出默认用户或角色。但是,如果我从bash提示符中说明
sudo -u postgres createuser michaelrodent
\du
然后显示角色名称。愚蠢的我没有将角色属性分配给超级用户,因此当通过psql导入时,我收到的错误如下:
ERROR: must be owner of extension plpgsql
ERROR: must be owner of relation accbiadesivolumes
以postgres用户身份返回,我不能:
alter role michaelrodent with superuser
...无法理解为什么postgresql命令语言无法注册以及如何使用sudo -u postgres [...]的快捷语法来改变角色......
答案 0 :(得分:8)
您是否在命令行的末尾添加了分号,例如:
alter role michaelrodent with superuser;
答复/结果应为:
krant=# alter role dba with replication;
ALTER ROLE
krant=#