需求:
有一個文件,文件里面包含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