使用 cron 将数据加载到 MySQL 数据库中

sos*_*tee 0 mysql cron

我想让将数据加载到 MySQL 数据库(Ubuntu 12.04)中成为一项 cron 工作。我可以使用代码手动完成:

LOAD LOCAL DATA 
INFILE re.txt
INTO table rasss
LINES TERMINATED BY '|'
Run Code Online (Sandbox Code Playgroud)

我也知道如何向crontab -e文件添加作业,但我只对单行命令这样做

sim*_*mon 6

最好的解决方案是为此编写一个简短的脚本,然后调用该脚本cron- 您可以将其作为单行代码来执行,但它会很丑陋且难以维护,并且没有任何优势。(如果你需要一个例子,请告诉我)

编辑:

沿着这些路线尝试一些事情,从我的头顶:

#!/bin/bash

DB_USER='my_user';
DB_PASSWD='passwd';

DB_NAME='db_name';
TABLE='rass';

INPUT_FILE='/full/path/to/re.txt';

SQL="USE $DB_NAME; LOAD LOCAL DATA INFILE '$INPUT_FILE' REPLACE INTO TABLE `$TABLE` LINES TERMINATED BY '|' CHARACTER SET utf8;"
mysql --user=$DB_USER --password=$DB_PASSWD --default_character_set utf8 $DB_NAME -e "$SQL"
Run Code Online (Sandbox Code Playgroud)

至于把它放在哪里,好吧,这取决于你。请记住,如果您使用 root,crontab那么脚本将以 root 权限执行,并且必须归所有root(而不是全局可写)。出于这个原因,我有时在/root.

希望这可以帮助 :)