使用 MySQL 推送功能将 MySQL 表同步到 PostgreSQL

使用 MySQL 推送功能将 MySQL 表同步到 PostgreSQL

我有一个MySQL在严格的防火墙后面运行的数据库,并且只能监听localhost- 甚至没有127.0.0.1

我有一个遥控器PostgreSQL,我想从数据库里获取synced它的副本。tableMySQL

运行数据库的服务器MySQL能够连接到PostgreSQL数据库,因为允许传出连接。

是否可以MySQL通过将表推送到远程PostgreSQLsync近乎实时地保持数据库同步?

我已经查看过foreign data wrappersPostgreSQL它们的工作方式恰恰相反,并且没有replica在本地存储。

找不到是否有任何可以//变成foreign data wrapper的?MySQLinsertupdatedeletePostgreSQL

答案1

这不是一个系统管理员解决方案/答案,但如果只针对一个表,我建议构建一个小型服务,将该表从 mysql 同步到 postgree db。

我过去曾对两个 mysql 数据库做过这个,但我必须添加一个表字段才能知道该字段是否已同步。

答案2

你没有提到操作系统,但假设是 Linux 系统,你可以创建 SSH 隧道,例如:ssh root@<HOSTNAME> -L 5432:localhost:5432然后尝试pg_chameleon

pg_chameleon 是一个用 Python 3 编写的 MySQL 到 PostgreSQL 副本系统。该工具可以连接到 mysql 复制协议并复制 PostgreSQL 中的数据更改。无论用户需要在 MySQL 和 PostgreSQL 之间设置永久副本还是执行引擎迁移,pg_chamaleon 都是完成这项工作的完美工具。

相关内容