如何同步本地MySQL(完全访问)到远程(仅PHP)

我们的场景是一个本地Linux MySQL服务器,我们可以根据需要做任何事情,包括安装东西,设置cronjobs,以及一个只能通过PHP访问的远程服务器。 远程的一个是通常的LAMP托pipe服务,所以我们可以上传我们想要的任何PHP,但是只有本地主机上的php脚本能够连接到MySQL,我们不能直接从外部连接到数据库。 有FTP上传和pipe理PHP文件。

本地服务器运行一些商业软件,我们编写脚本从该软件获取一些数据。 我们需要将这些数据加载到MySQL托pipe的网站上的某些专用表中。

出于testing目的,我们导出本地数据库(使用本地phpMyAdmin),并将其导入远程系统(使用远程phpMyAdmin),当然它工作正常。 现在我们需要自动化这个。

我们的“同步”实际上是完全擦除远端,然后我们重新导入本地数据库的所有内容。 这是每晚都会发生的。

第一个想法是通过mysqldump导出的本地cron作业,通过FTP上传,wget是一个远程php文件的URL(在某些凭据检查之后)最终运行上传的SQL。 一些盲目的,愚蠢的脚本…应该工作,只要我保持在SQL上传/ SQL导入区域以外的陌生人。

而不是重新发明轮子,是否可以达到相同的结果,也许以我没有想到的更智能的方式?

谢谢。

除了可能跳过ftp部分之外,我想不出更好的方法。 相反,只是使用wget直接使用POST (虽然我会检查看看如果POST失败会发生什么情况,即数据对PHP最小上传大小来说太大)。 这将会跳过脚本中的一些复杂性,因为您只是在执行mysqldump,之后是wget auth,然后POST(除非我错过了某些内容)。

然而,更重要的问题是为什么你使用只允许PHP访问的主机? 你已经有一个开发系统在本地工作,所以你知道如何处理pipe理方面的事情。 你应该保持生产和开发环境尽可能接近,以避免解决不同系统(更不用说避免这个特殊的pipe理麻烦)产生的讨厌的小错误。

我的VDS提供商在本年度提供了48英镑的托pipe服务,可以提供1GB的空间,100GB的stream量和一个数据库(这是增值税,所以如果你可以声明的话,可以多收一点价钱)。 而且你可以完全访问shell。 我相信有这样的托pipe服务提供商的负载,以及为什么阻碍未来的发展? 它只会踢你在进一步下线的屁股。