PostgreSQL:从转储恢复数据库 - 语法错误

标签 postgresql import restore dump

我正在尝试通过在空数据库上执行 pg_dump 创建的 SQL 来恢复 PostgreSQL 数据库。

我收到这个错误:

ERROR:  syntax error at or near "\"
LINE 5211: \.

第 5210 和 5211 行内容如下:

COPY auth_group (id, name) FROM stdin;
\.

它在我的 Linux 服务器上运行良好,我在其中使用了这个命令:

psql -U 数据库名<转储文件.sql

但是在 Windows 上,我不确定如何做同样的事情,所以我一直在尝试从 pgAdminIII 查询实用程序运行转储文件的 sql。

在 Windows 上从转储导入数据库的推荐方法是什么?或者:如何解决语法问题?

非常感谢任何帮助!

马丁

最佳答案

psql 上的-f 文件名 参数将读入文件,因此您不必将其通过管道输入。psql 应包含在 Windows 中 PostgreSQL 的 bin 目录中。像这样:

psql -d dbname -U username -f dumpfile.sql

如果 psql 可执行文件不在您的路径中,您可能必须包含它的完整路径,并且可能将“.exe”添加到 psql,因此它是“psql.exe”。

还要确保您没有降低版本号,我以前遇到过语法问题(例如,不要导出 8.4 数据库并尝试将其加载到 8.1 数据库中)。如果是这样,您可能必须手动编辑转储文件。

关于PostgreSQL:从转储恢复数据库 - 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797954/

相关文章:

mysql - 备份相关的 innodb 数据库

javascript - 使用node.js时如何在客户端和服务器端导入javascript代码?

import - 我通过 `import ' models.dart' ;`, it can' 导入另一个文件进行编译

javascript - postman 没有收到 POST 的回复

sql - 撤销对数据库的访问似乎不起作用

mysql - 相同的 MySQL 数据库导入显示不同数量的记录

mysql - 安装不同版本的WAMP后如何恢复MYSQL数据库?

java - 恢复 Google App Engine 数据存储

sql - 如何使用 SQL 按类型获取项目的百分比

node.js - "Permission denied"在 Travis-CI 中使用 PostgreSQL COPY