需求:
有一个文件,文件里面包含100多个sql文件,想要把这些sql文件都导入到mysql中
做法:
使用 mysql 的 source 可以将文件导入到 mysql 中,但是一次只能导入一个 sql 文件,我有100多个sql。。。
用传统的方式肯定不行,这里可以参考下 Nginx 配置文件,在 Nginx 中,可以使用“include”将一些域名配置文件统一到一个.conf文件中集中管理,那么 mysql 是否也可以这样呢?答案是肯定的
首先,进入到你的sql文件列表里面
vim shell.sh
输入下面的内容
#!/bin/bash
dir=`ls ~/tmp/` #定义遍历的目录,这个是你sql的存放路径
echo "" > all.sql #创建一个总的sql文件,注意别跟你现有的重名即可!
for i in $dir
do
echo "source ~/tmp/$i;" >> all.sql
done
保存后执行
# sh shell.sh
然后我们查看下all.sql文件
# cat all.sql
source ~/tmp/a.sql;
source ~/tmp/b.sql;
...
...
...
然后我们登录到mysql中,用source导入sql
mysql > source ~/tmp/all.sql;
批量导入sql over