如何将MySQLdump导入PostgreSQL数据库?

3npbholx  于 2022-11-28  发布在  Mysql
关注(0)|答案(2)|浏览(311)

我有一个由PHPMyAdmin生成的MySQLdump,我需要将它导入Postgresql数据库,但我不知道这是否可能。我看到有人推荐pgloader,但看到如何做有点混乱。此外,我在windows上,如果它相关的所有。
我只需要表,所以我不关心旧数据库或新数据库中的数据。
也不是很大,只有84张table,但足够我写了。
谢谢你,谢谢你

wnavrhmk

wnavrhmk1#

您可以使用pgloader
您需要对它执行install,然后运行一个简单的lisp脚本(script.lisp),其中包含以下3行:

/* content of the script.lisp */
LOAD DATABASE
FROM mysql://dbuser@localhost/dbname
INTO postgresql://dbuser@localhost/dbname;

/*run this in the terminal*/
pgloader script.lisp

之后,PostgreSQL数据库将包含MySQL数据库中的所有信息。

zxlwwiss

zxlwwiss2#

有很多资源可以做到这一点。没有一个是简单的。

  • 您提到的pgloader是本页列出的众多工具之一:https://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#MySQL
  • MySQLdump应该有一个选项--compatible=postgres,但不要依赖它。它对输出做了一些修改,但不足以完全兼容PostgreSQL语法。
  • 另一个选择是使用mysqldump --tables将表转储到CSV文件,而不是转储到SQL格式。然后,您可以使用PostgreSQL中的COPY语句逐个批量加载CSV文件。

如果你的MySQL数据库包含视图或存储例程(过程、函数、触发器或事件),那么一般来说它们不能被任何工具转换。存储例程的PostgreSQL语言与MySQL有很大的不同。你必须从头开始,在PostgreSQL中编写执行等效逻辑的例程,但以更符合PostgreSQL的方式编写。

相关问题