2

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

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

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

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

有什么想法我能做什么?

谢谢 :-)

4

6 回答 6

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
于 2012-06-26T17:22:00.460 回答
1

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

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

于 2012-06-26T17:23:42.923 回答
1

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

于 2012-06-26T20:54:14.000 回答
0

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

于 2012-06-26T17:18:47.387 回答
0

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

于 2012-06-26T17:24:07.283 回答
0

我建议如下:

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

虽然这看起来很复杂,但它允许在连接丢失后重新启动 - 我认为这很重要。

于 2012-06-26T17:25:32.260 回答