我正在尝试通过在空数据库上执行 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/