0

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

我正在从事的工作需要在两台服务器上安装用 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

这是接近正确的地方还是我应该回到与远程数据库连接的斗争?

4

1 回答 1

2

您确实意识到 cron 只是一个调度程序,并且只是执行您告诉它的任何程序?cron没有除此之外的聪明才智。如果您想使用远程文件,则由您来获取该文件。那不是,从来都不是,也永远不会是 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
于 2013-09-13T19:55:13.430 回答