用我的本地MySQL数据库更新我的远程MySQL数据库

时间:2012-06-26 17:14:52

标签: mysql perl wamp

我有一个本地Perl脚本,可以对网页进行大量解析,然后成功更新我的本地 MySQL数据库(WAMP服务器)。我现在想将此本地数据发送到远程服务器,但不允许远程连接到我的数据库与我的托管公司。不幸的是,我从没想过那个问题。

所以,我现在需要找到一种自动更新远程服务器的方法(每15分钟一次)。我错误地认为我可以使用远程服务器的详细信息编辑我的Perl脚本。

我知道我可以使用CGI或PHP在服务器上进行解析,但我真的想保持解析本地。

要点: 本地MySQL数据库 - >远程MySQL数据库每隔15分钟??

任何想法我能做什么?

谢谢: - )

6 个答案:

答案 0 :(得分:1)

如果复制不是一个选项但您仍然可以建立从本地框到远程框的ssh连接,那么

  1. 运行mysqldump将数据导出到文件http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_where
  2. scp文件到远程框
  3. mysql -u username -p password database_name < dumpfile.sql

答案 1 :(得分:1)

如果您的服务器不接受远程连接到mysql,您可以创建一个ssh隧道。然后,您可以应用matcheek提出的复制解决方案。

这是一个提示:http://realprogrammers.com/how_to/set_up_an_ssh_tunnel_with_putty.html

答案 2 :(得分:1)

根据我收到的回复,我认为我原来的问题的答案是停止使用廉价的共享托管公司(没有远程访问服务器,没有cron作业等)并开始使用VPS托管公司。这将使我可以自由地远程连接到我的服务器等。 再次感谢那些回复的人。

答案 3 :(得分:0)

从描述问题的方式看,复制似乎是要走的路 http://dev.mysql.com/doc/refman/4.1/en/replication-howto.html

答案 4 :(得分:0)

使用cron作业可能是另一种选择。它将从本地计算机读取文件并在远程框中导入数据。

答案 5 :(得分:0)

我建议如下:

  • 在每次本地运行时,编写S​​QL语句(无SELECT), 您对数据库副本也运行到文件
  • 在您的WAMP服务器上创建一个小型PHP脚本,从第一步(soem auth ofcourse)返回最旧的脚本
  • 在远程服务器上运行一个cronjob,它从本地服务器获取并对数据库运行SQL,然后确认它
  • 在您的WAMP服务器上确认后,删除该文件并返回下一个文件。

虽然这看起来很复杂,但它可以在连接丢失后重新启动 - 这是我认为非常重要的事情。