【问题标题】:PostgreSQL: database restore from dump - syntax errorPostgreSQL:从转储中恢复数据库 - 语法错误
【发布时间】:2010-12-20 08:32:53
【问题描述】:

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

我收到此错误:

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

第 5210 和 5211 行如下:

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

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

psql -U 数据库名

但在 Windows 上,我不知道该怎么做,所以我一直在尝试从 pgAdminIII 查询实用程序运行转储文件的 sql。

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

非常感谢任何帮助!

马丁

【问题讨论】:

    标签: postgresql import restore dump


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 当我尝试使用 Navicat 导入一个抛出各种语法错误的转储时,这对我有用。它在 OS X 的终端上运行得很好。
    【解决方案2】:

    试试 psql -d dbname -U user -f dumpfile.sql

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 1970-01-01
      • 2022-01-04
      • 2021-10-23
      • 1970-01-01
      • 2019-09-27
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多