Postgresql 获取错误时会发生什么:role“;"富",;psql不存在吗?
我正在导入具有以下内容的数据库:Postgresql 获取错误时会发生什么:role“;"富",;psql不存在吗?,postgresql,Postgresql,我正在导入具有以下内容的数据库: sudo -u postgres psql mydb < mydb.bak sudo-u postgres psql mydb
sudo -u postgres psql mydb < mydb.bak
sudo-u postgres psql mydb我想知道在这种情况下会发生什么。它是否正在使用另一个用户,如果是,是哪个用户?数据库所有者或可能只是postgres?我猜您的
mydb.bak
来自另一个postgres集群/实例,其中有一个角色foo
。我还想猜测,您要导入的集群没有这个角色。在这种情况下,您可能拥有分配给rolefoo
的特权的对象,而在新数据库中没有这样的角色。然后你会看到你看到的错误。如果是这种情况,则需要手动将其添加到新集群/实例,或者在另一个实例上使用pg_dumpall-g
来获取全局对象,其中包括角色。请注意,这将包括所有全局用户,因此您可能不需要。使用psql
的-U
选项指定所需的数据库用户。@LaurenzAlbe I get致命:用户“dev”的对等身份验证失败
使用sudo-u postgres psql-u dev mydb
时,请适当更改pg_hba.conf
并重新加载。如果您在pg_hba.conf
中启用非对等登录(例如通过密码)。然后,您根本不需要sudo,可以直接使用psql-U dev mydb