繁体   English   中英

如何还原Postgres转储

[英]How to restore postgres dump

我们的开发人员已从postgresql(file.sql)向我们发送了转储文件,但我们不知道如何还原该文件,我们已经尝试过

psql -U <username> -d <dbname> -1 -f <filename>.sql

并收到一个错误,“超级用户”无法通过密码进行身份验证是什么意思? 我应该输入笔记本电脑的超级用户吗? 还是数据库用户?

您可以尝试以下几行:

PGPASSWORD=password;

pg_restore --host "hostname" --port "port" --username "postgres" --no-password --verbose --dbname "dbname"  --schema "schema" "dump_filename";

其中“主机名”是postgresql服务器的主机名(localhost),“端口”是侦听postgresql服务器的端口(5432),“ postgres”是用户名,“ dbname”数据库名称

pg_dump不会转储用户,但是会转储他们的权限。 如果习惯将“超级用户”设置为某个对象的所有者,那么您将需要首先在实例上创建该用户。 由于您使用的是-1因此在向不存在的用户添加权限时可能会失败。 您可以尝试使用psql -h <dbhost> -U <username> -W -d <dbname> < filename.sql ,它将运行转储中的每个语句,即使在设置权限时出错也将继续。

注意:所有对象现在将由您所连接的用户拥有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM