使用CRON导入远程.sql文件

时间:2013-09-13 19:49:04

标签: php mysql cron

在我开始讨论之前,我想确保我的思路正确。

我正在处理的工作要求在PHP中创建的日历软件安装在两台服务器上,并使用单个mySQL数据库获取信息。我在服务器A上启动并运行了很好的软件,但我无法在服务器B上获取连接到数据库的代码(关于不同密码加密技术的错误),我无法克服。

现在我假设我使用CRON备份数据库并在服务器A上保存.sql文件,我应该能够使用CRON脚本将该备份导入服务器B上的mySQL。

0,30    *   *   *   *   mysqldump -uUSERNAME -pPASSWORD database > database_backup.sql

0,35    *   *   *   *       mysql -h DB_HOST -u DB_USER -p'DB_PASSWORD' DB_NAME < /url/of/file/database_backup.sql

这是否接近正确,还是应该回到远程数据库连接?

1 个答案:

答案 0 :(得分:2)

您是否意识到cron只是一个调度程序,只是执行您告诉它的任何程序?除此之外,cron还有 NO 智慧。如果您想使用远程文件,则需要来获取该文件。这不是,从来没有,也永远不会是,cron的工作。

您必须至少具有以下内容:

* * * * (wget http://example.com/file.sql > file.sql && mysql < file.sql)

但是,不管怎么说,你不应该将这样的“复杂”命令嵌入到crontab中。你应该把完整的逻辑放到shell脚本中,然后让cron调用那个脚本:

* * * * /path/to/script/get_sql_file_and_load_into_mysql