我从未做过类似的事情。
我有一个系统,我需要将我的数据与外部数据(在另一个数据库中)联系起来。 我的偏好是获取这些数据并创建我自己的表,但在这种情况下,当其他数据库更新时,我的个人表将被淘汰。
所以,基本上我需要将我的表与外部表同步,或者只是获取外部数据值。
我不知道如何连接和关联来自十个外部数据库的数据。
我需要检查用户是否在其他网站上注册。
任何帮助?
答案 0 :(得分:3)
我正在做类似的事情。
我发现Easiset的方法是将数据拉进去,虽然我在我的项目中进行双向同步,你没有提到这个,所以我想这是你想要的数据拉动。
您需要在其他服务器上拥有用户帐户,并且需要使用ip而不是“localhost”创建帐户。你将使用远程主机的ip而不是ususal localhost从你的端到mysql客户端连接。
请参阅this page了解更多信息。
如果像我一样,您必须连接到不同的数据库服务器类型,我建议使用数据库抽象库来简化跨不同sql服务器的无缝管理数据。我选择了Zend_db组件,在Zend_config中使用了standaline,因为它们支持MySQL和MSSQL。
更新 - 使用代理数据库访问关键任务数据
根据项目的范围,如果无法直接从远程数据库访问数据,则有不同的可能性。为了回答你的评论,我将告诉你我们如何解决与我绑定的当前项目相同的问题。客户端有一个很大的MSSQL数据库,它是业务关键应用程序,会计,发票,库存,一切都由一个绑定到MSSQL的大应用程序处理。我的任务是安装一个CRM,并将他的MSSQL任务关键型应用程序的客户同步到CRM中,顺便在MySQL上运行。
我不想直接从我的CRM访问这些数据,这个CRM不应该触及他们的主要MSSQL数据库,我当然不愿意承担任何错误的责任,即使理论上这是不应该发生,在实践中理论往往一文不值。我给出(并实施)的建议是在他们的最后建立一个代理数据库。位于同一MSSQL实例上的该数据库具有一个任务,可以在夜间将数据复制到第二个数据库中。这一个,我可以自由远程访问。用户是在MSSQL上创建的,只能访问代理,并且只从一个ip接受连接。
我的scipt必须同步两种方式,所以在我的情况下,我每晚“修改”从MSSQL到crm的修改记录,并“拉”代理数据库中添加的CRM记录。实习生通过电子邮件通知代理中的新记录以更新到他们的MSSQL应用程序。希望这很清楚,我意识到很难用几行清楚地表达出来。如果您有其他问题,请随时提出。
好运!
答案 1 :(得分:1)
您必须下载所需部分(或全部)数据库的备份(gzip,zip)并将其上传到另一个数据库。
顺便说一下。 cronjobs在这一点上不会帮助你,因为你无法从外面访问任何数据库。
答案 2 :(得分:1)
其他网站是否有用于访问此类信息的API?他们能够构建一个吗?如果是这样,那将是最好的方式。
否则,我假设您从数据库获取数据的方式是直接查询它。这可以工作,只需将mysql_connect建立到他们的位置并查询它就像它是你自己的数据库一样。注意:他们的数据库必须设置为使用外部连接才能使用此方法。