今天部署供方发过来的mysql数据库升级文件,发现有几十个.sql文件,要导入到数据库中。按照常规方式肯定是用 source ../../…./xx.sql 一个一个的导入了。
结合网上的例子,决定先将所有的.sql文件,放在一个文件里面,然后通过source ../../…./xx.sql一次性导入,方便快捷。这里不是指将.sql文件中的内容一个一个地复制到all.sql中,而是将.sql的路径放置在all.sql,如图,具体原理不叙述了。
进入.sql文件列表目录
注意:文件目录名称不能和系统文件夹名称相同,不然容易混淆,我这里出现了把系统文件名给增加到all.sql文件里了。当文件夹名称为Desktop时,出现了下面的内容。
打开终端,输入: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
这是网络上的文本编辑内容,我做了一定的修改如图:
我的.sql 文件是放置opt/hsql目录下的,所以我将dir的目录绝对指定到 /opt/hsql/,echo 这行 source 地址也绝对指定到 /opt/hsql/..,至于为什么,我个人认为,这样方便明了,而且生成的all.sql 直接在hsql目录下,方便查找。
输入内容后,退出保存!
备注:i 命令进入编辑状态,ESC + :wq! 退出保存。
输入命令:sh shell.sh
输入命令:cat all.sql