将一台服务器上的PostgreSQL数据库复制到另一台服务器上的MySQL数据库

时间:2013-10-22 09:00:36

标签: mysql postgresql backup

我有一个包含4-5个表的PostgreSQL数据库(其中一些表有超过2000万行)。我必须将整个数据库复制到另一台机器上。但是,我在那台机器上有MySQL(并且由于某种原因无法安装PostgreSQL)。

数据库是静态的,不会更新或刷新。复制完成后无需在数据库之间同步。所以基本上,我正在尝试备份数据。

有一个名为 pg_dump 的实用程序,它会将内容转储到文件中。我可以将其压缩并将其ftp到另一台服务器上。但是,我没有在另一台机器上将psql重新加载到数据库中。 mysql是否有可能将此文件解析并解码为一致的数据库?

Postgres是版本9.1.9,mysql是版本5.5.32-0ubuntu0.12.04.1。

在没有安装任何服务的情况下,还有其他简单的方法吗?

1 个答案:

答案 0 :(得分:1)

取决于您认为“简单”的内容。由于它只是少数几个表,我这样做的方式是这样的:

  1. 使用pg_dump -t table_name --column-inserts
  2. 转储单个表
  3. 编辑单个文件,更改模式定义以与mysql兼容(例如,使用auto_increment而不是serial,等等:像这样:http://www.xach.com/aolserver/mysql-to-postgresql.html仅反向)
  4. 将文件加载到mysql实用程序中,就像使用任何其他mysql脚本一样。
  5. 如果文件对于第2步太大,请使用pg_dump的-s和-a参数分别转储数据和模式,然后仅编辑模式文件并在mysql中加载这两个文件。