巧用linux管道,让mysql执行大量脚本文件

  在工作中碰到这样的需求,要mysql执行大量脚本来更新数据库。查了mysql的source命令,只能执行一个脚本文件。我试了source /sqkdir/*.sql;不行。mysql不能把*.sql作为文件名通配符来处理。后来请教了别人,找到了办法。利用管道,执行如下命令:

  cat /sqldir/*.sql | mysql -u username -p

  这样就实现了让mysql执行大量脚本文件。

  原理是这样的,cat会把所有的文件链接起来输出到缺省输出,然后用管道把这些文件输出到mysql,mysql将这些文件作为输入,会执行其中的脚本。