【问题标题】:mysqldump compatible mode postgresql is not workingmysqldump 兼容模式 postgresql 不工作
【发布时间】:2018-08-14 08:41:03
【问题描述】:

我需要将 mysql 数据库转换为 postgres。只是为了测试,我安装了一个本地 mysql 数据库,并创建了一个简单的测试数据库,只有一张表。现在我不想使用选项--compatible=postgresql 进行 SQL 转储:

mysqldump test --compatible=postgresql -uroot > ~/Documents/testdump.sql

但我总是收到以下错误消息:

Invalid mode to --compatible: postgresql

我正在使用 OSX 并使用自制软件安装了 mysql

mysql版本为:stable 8.0.12 (bottled)

我也尝试使用 Docker 容器和最新版本 8.0.12,但它也给了我相同的错误消息。我需要兼容模式,以便可以使用带有 python 脚本的转储将其转换为 postgresql。

编辑

我已降级为 5.7,它现在可以工作了 - 我仍然想知道为什么它不能在新版本上工作。

【问题讨论】:

    标签: mysql postgresql


    【解决方案1】:

    如果您查看 MySQL 8 的文档,您会发现:

    --compatible=名称

    生成与其他数据库系统更兼容的输出或 使用较旧的 MySQL 服务器。 此选项的唯一允许值 是 ansi,与对应选项的含义相同 设置服务器 SQL 模式。

    所以将 name 的值设置为 postgresql 是行不通的。

    https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_compatible

    对于5.7,以下值是可能的,这就是降级使您能够使用所需值的原因:

    --compatible=名称

    生成与其他数据库系统更兼容的输出或 使用较旧的 MySQL 服务器。 name的值可以是ansi、mysql323、 mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_table_options 或 no_field_options

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2011-02-23
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      相关资源
      最近更新 更多