我有一个包含 4-5 个表的 PostgreSQL 数据库(其中一些表的行数超过 2000 万行)。我必须将整个数据库复制到另一台机器上。然而,我在那台机器上有 MySQL(并且由于某种原因无法安装 PostgreSQL)。
数据库是静态的,不会更新或刷新。复制完成后无需在数据库之间同步。所以基本上,我正在尝试备份数据。
有一个名为pg_dump的实用程序,它将把内容转储到文件中。我可以将其压缩并通过 ftp 传输到另一台服务器上。但是,我在另一台计算机上没有 psql 来将其重新加载到数据库中。 mysql
是否有可能解析此文件并将其解码为一致的数据库?
Postgres
版本为 9.1.9,mysql
版本为 5.5.32-0ubuntu0.12.04.1。
是否有任何其他简单方法可以在不安装任何服务的情况下执行此操作?
最佳答案
取决于您认为“简单”的内容。由于它只是少量的表,所以我的做法是这样的:
- 使用 pg_dump -t table_name --column-inserts 转储单个表
- 编辑各个文件,更改模式定义以与 mysql 兼容(例如使用 auto_increment 而不是串行等:像这样:http://www.xach.com/aolserver/mysql-to-postgresql.html 仅反向)
- 将文件加载到 mysql 实用程序中,就像加载任何其他 mysql 脚本一样。
如果文件对于步骤 #2 来说太大,请使用 pg_dump 的 -s 和 -a 参数分别转储数据和架构,然后仅编辑架构文件并将这两个文件加载到 mysql 中。
关于mysql - 将一台服务器上的 PostgreSQL 数据库复制到另一台服务器上的 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513419/