我需要把mysql数据库转换成postgres。为了进行测试,我安装了一个本地mysql数据库,并用一个表创建了一个简单的测试数据库。现在我不想用这个选项进行sql转储 --compatible=postgresql
:
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脚本的dump将其转换为postgresql。
编辑:
我降级为 5.7
它现在正在工作-我还在想为什么它不能与新版本一起工作。
1条答案
按热度按时间tzdcorbm1#
如果您查看mysql 8的文档,您会发现:
--compatible=名称
生成与其他数据库系统或较旧的mysql服务器更兼容的输出。此选项唯一允许的值是ansi,其含义与设置serversql模式的相应选项相同。
因此,将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。