我们的开发人员已从postgresql(file.sql)向我们发送了一个转储文件,我们不知道如何还原它,我们已经尝试过
psql -U <username> -d <dbname> -1 -f <filename>.sql
并收到一个错误,表明“超级用户”无法通过密码验证 这是什么意思?我应该输入笔记本电脑的超级用户吗?还是数据库用户?
答案 0 :(得分:0)
您可以尝试以下几行:
library(ggplot2)
h$row.name <- factor(as.character(h$row.name), levels = h$row.name, labels = h$row.name)
ggplot(h, aes(x = row.name, y = BMP2, fill = type)) +
geom_bar(stat = "identity", position = "dodge")
其中“主机名”是Postgresql服务器的主机名(localhost),“端口”是侦听Postgresql服务器的端口(5432) ,“ postgres”是用户名,“ dbname”是数据库名称
答案 1 :(得分:0)
pg_dump不会转储用户,但是会转储他们的权限。如果习惯将“超级用户”设置为某个对象的所有者,那么您将需要首先在实例上创建该用户。由于您使用的是class BaseGeometry(dict):
_ao = None
_op = None
def __init__(self, iterable=None):
if iterable is None:
iterable = {}
self.update(iterable)
def __setattr__(self, key, value):
"""sets the attribute"""
if key in {'_ao','_op', '_ipython_canary_method_should_not_exist_'}:
super(BaseGeometry, self).__setattr__(key,value)
else:
self[key] = value
def __setattribute__ (self, key, value):
if key in {'_ao','_op', '_ipython_canary_method_should_not_exist_'}:
super(BaseGeometry, self).__setattr__(key,value)
else:
self[key] = value
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
def __getattribute__ (self, name):
return super(BaseGeometry, self).__getattribute__(name)
def __getattr__(self, name):
try:
if name in {'_ao','_ipython_canary_method_should_not_exist_'}:
return super(BaseGeometry, self).__getattr__(k)
return dict.__getitem__(self, name)
except:
raise AttributeError("'%s' object has no attribute '%s'" % (type(self).__name__, name))
def __getitem__(self, k):
return dict.__getitem__(self, k)
,因此在向不存在的用户添加权限时可能会失败。您可以尝试使用-1
来运行转储中的每个语句,即使在设置权限时出错也会继续执行。
注意:现在,所有对象将由与您连接的用户拥有。