【发布时间】:2018-01-13 05:44:13
【问题描述】:
我想为 INSERT INTO 6 个表编写一个 cron 作业。我知道:
- 这些表将始终存在并且为空,等待记录
- 我将在服务器上准备好导入 6 个 .sql 转储文件。
- 文件的格式与 phpMyAdmin 导出工具创建的完全相同
即所有人都已经有一个 INSERT INTO
tablename行和多个带括号的值行。 - 所有的外键约束在插入语句之前都设置为关闭,并在插入之后再次打开。
我想在 PHP 中做所有事情,但在共享主机上 exec() 函数被禁用,文件特权也是如此,所以我的选择越来越少。
我正在寻找一种通过 cPanel cron 或 cPanel 中的 SSH 工具执行上述操作的方法。 CRON 将是我的首选,因为我不熟悉 SSH。
我是否将这一行运行 6 次(针对每个文件),还是可以将其合并到一个 cron 或 ssh 命令中? p.s.我也使用.sql转储文件的绝对或相对路径
mysql -h localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-1.sql'
mysql -h localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-2.sql'
mysql -h localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-3.sql'
mysql -h ... etc ...
谢谢
【问题讨论】:
-
等等....你用一个文件测试了 cron 并且它工作正常吗??
-
不,没有这样做,因为我毫不怀疑它会以一种或另一种方式导入 - 我更关心如何在不锁定服务器并创建大量文件的情况下使用 6 个文件开销
-
从简单的东西开始,然后移到更大的东西...尝试使用一个文件,看看 cron 是否被执行,并填充数据库...当您完成该过程时,没有错误,然后转到这些替代方案之一stackoverflow.com/questions/4708013/…