如何每天通过cron或ssh导入mysql

如何每天通过cron或ssh导入mysql,mysql,cron,Mysql,Cron,我想写一个cron作业插入到6个表中。我知道: 这些表将始终存在,并将为空,等待记录 我将在服务器上有6.sql转储文件,可以导入 文件的格式与phpMyAdmin导出工具创建的格式完全相同 i、 e.所有已在tablename行和多个parenthisized值行中插入一个INSERT 在insert语句之前,所有外键约束都设置为off,并在insert语句之后再次启用 我想在PHP中完成所有操作,但在共享主机上,exec()func被禁用,文件特权也被禁用,因此我的选项越来越少 我正在寻找一

我想写一个cron作业插入到6个表中。我知道:

  • 这些表将始终存在,并将为空,等待记录
  • 我将在服务器上有6.sql转储文件,可以导入
  • 文件的格式与phpMyAdmin导出工具创建的格式完全相同 i、 e.所有已在
    tablename
    行和多个parenthisized值行中插入一个INSERT
  • 在insert语句之前,所有外键约束都设置为off,并在insert语句之后再次启用
  • 我想在PHP中完成所有操作,但在共享主机上,exec()func被禁用,文件特权也被禁用,因此我的选项越来越少

    我正在寻找一种通过cPanel中的cPanel cron或SSH工具实现上述功能的方法。CRON将是我的第一选择,因为我不熟悉SSH

    我是要运行这行6次(针对每个文件),还是可以将其合并到一个cron或ssh命令中?p、 我是否使用.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 ...
    
    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。。。等
    

    谢谢

    您可以在/home/youruser/中创建一个
    task.sh
    文件,您可以在其中放置以下内容:

    #!/bin/bash
    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 localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-4.sql'
    mysql -h localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-5.sql'
    mysql -h localhost -u myusername -p mypassword mycatalogdb < 'sqlcronfiles/dump-6.sql'
    
    你就完了。
    我希望它能为您工作

    等等……您是否仅用一个文件测试了cron,并且它工作正常?没有,我没有这样做,因为我不怀疑它会以这种或那种方式导入-我更关心的是如何使用6个文件,而不锁定服务器,从简单的文件创建大量的开销,然后移动到更大的文件…尝试使用一个文件,看看cron是否得到执行,然后填充数据库…当你有了这个过程好的,无错误的,然后转到其中一个替代方案
    /home/youruser/task.sh