大家好, 我有个问题 如果我有一台运行 sqlite 的计算机,并且我想让 sqlite 同步外网中的 Mysql 服务器。 如果sqlite中的数据已被(更改/修改),我如何同步我的MYSQL DB和sqlite,以便当MYSQL DB中的数据更改/修改时sqlite中的数据也将(更改/修改)?
谢谢大家。
你可以尝试greplicator
geplicator 是一个实时解决方案 旨在从 MySQL 复制数据 数据库到任何其他关系 数据库,例如Oracle、Microsoft SQL Server、IBM DB2 UDB 和 MySQL。
我在 Android sqlite DB 和中央 MySql DB 之间存在类似的双向同步问题。当进行插入时,问题才真正出现,因为它承认存在复制主键的可能性。
我不久前确实构建了一个系统,它使用硬件和基于时间的 GUID 主键,而不是简单的、单调递增的主键。理论上,如果使用 sqlite 在手机上插入新记录,或者使用 mysql 在中央服务器上插入新记录,则密钥永远不会发生冲突,因为它们是全局唯一的。
不幸的是,这意味着您已经进入了主键管理业务,而不仅仅是采用两个数据库引擎附带的自动管理业务。但从理论上讲,这种方法允许将来自许多不同手机的数据轻松地融合到中央数据库中,并重新分发回所有手机。我正在考虑用这种方法来解决我的 Android 问题,尽管我仍然希望找到一个已经制定好的解决方案。
我有同样的问题,但我有解决这个问题的想法。
我的想法是当用户运行程序时,它应该连接到两个数据库并检查 SQLite 数据库是否为空。如果为空,则应使用 MySQL 数据库中的信息填充 SQLite 数据库。但是,如果 SQLite 数据库不为空,则程序应从 MySQL 和 SQLite 数据库中检索所有信息,并比较它们之间的数据。我建议使用表来完成此操作,比较两个表的每一行中的信息,如果有任何记录不匹配,则应相应更新 SQLite 数据库。一旦SQLite数据库的比较和更新完成,程序应该关闭与MySQL数据库的连接(以避免数据库服务器过载)并开始使用SQLite数据库。
问题是我不知道如何同步两个数据库,这意味着我不知道如何编写这个潜在的解决方案。