0

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

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

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

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

有没有其他简单的方法可以在不安装任何服务的情况下做到这一点?

4

1 回答 1

1

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

  1. 使用 pg_dump -t table_name --column-inserts 转储单个表
  2. 编辑单个文件,更改模式定义以与 mysql 兼容(例如,使用 auto_increment 而不是串行等:像这样:http ://www.xach.com/aolserver/mysql-to-postgresql.html仅反向)
  3. 像任何其他 mysql 脚本一样将文件加载到 mysql 实用程序中。

如果文件对于第 2 步来说太大,请使用 pg_dump 的 -s 和 -a 参数分别转储数据和模式,然后仅编辑模式文件并在 mysql 中加载这两个文件。

于 2013-10-22T09:43:54.107 回答