Mysql 如何在托管帐户和本地测试服务器之间保持数据库同步?
我有几个数据库托管在一个共享服务器上,还有一个用于开发的本地测试服务器 我希望使这两组数据库保持一定程度的同步(或多或少每天) 到目前为止,我解决这个问题的想法似乎很笨拙。无论如何,这里是我到目前为止考虑的参考:Mysql 如何在托管帐户和本地测试服务器之间保持数据库同步?,mysql,database,synchronization,Mysql,Database,Synchronization,我有几个数据库托管在一个共享服务器上,还有一个用于开发的本地测试服务器 我希望使这两组数据库保持一定程度的同步(或多或少每天) 到目前为止,我解决这个问题的想法似乎很笨拙。无论如何,这里是我到目前为止考虑的参考: 从联机数据库进行数据库转储,清除本地数据库,然后从转储中重新创建数据库。这需要大量的工作和大量的下载时间(这保证了我不会像我希望的那样做) 编写一个小型web服务来访问新数据,并在本地编写一个小型应用程序来与所述web服务通信,下载最新数据,并更新本地数据库 对于一个可能已经解决了无数
编辑2: 抱歉,我忘了提到我正在共享服务器上的LAMP堆栈上运行,因此仅Windows解决方案将无法工作
我很惊讶地看到,对于这个问题没有现成的解决方案。您考虑过复制吗?这不是闹着玩的,但可能是你想要的。请参阅此处了解更多详细信息 看看Microsoft Sync Framework-您需要在.net中编写代码,但它可以解决您的问题 下面是SQL server的一个示例,但也可以使用ado.net provider for mysql对其进行调整 在mysql数据库中,您需要额外的表来进行更改跟踪和锚定(跟踪上次的同步),这样才能工作,但只要您可以访问数据库,就不需要完全控制
复制可能更简单:),但这可能只适用于您的情况 您只是想更新数据,还是应该在本地数据库中覆盖任何架构更改?@Will:只更新数据。如果有任何架构更改,它将首先在测试服务器上实现,并在对生产服务器进行任何更改之前进行测试。Sylverdrag,听起来webservice方法是您的最佳选择,除非有第三方软件可以为您做到这一点。备份/还原方法在管理本地架构更改时会变得很棘手。复制不是与测试数据库同步所需的。我很可能会使用:“mysqldump productionserver | mysql测试服务器”。所以,使用管道符号,事情会进展得很快。您需要的是对托管服务器的ssh访问。如果您在生产服务器上没有脚本,那么应该运行mysqldump(或类似的东西)并发送数据,但是您需要非常非常好的安全性,这使得这很困难。这是一个共享主机。我认为我没有将MySQL服务器设置为复制主机所需的控制级别。我无法更改服务器的配置,甚至无法重新启动它。抱歉,我忘了提到我在LAMP堆栈上。服务器端不需要windows-只要您有一台windows计算机可以运行此同步(连接到托管服务器和测试服务器),就可以了。该应用程序可以在任何备用windows计算机上运行。好的,到时候我会仔细看看。