批量执行 sql 的 shell 脚本

最近有用到需要批量导入N个表的sql,一个个导入会吐老血的,写了个shell脚本,便捷导入。

通常我们导入单个sql,可以用

$mysql -uroot -p world < xxxx.sql

但我最近要导入一个文件里近百个sql,这么一个一个敲我都不敢想象。
搜索发现mysql 5.6以后可以用 mysql_config_editor 这个自带命令行工具方便批量执行操作。

使用方式如下:

$mysql_config_editor set --login-path=test --user=root --host=localhost --password $Enter password: (输入密码) 

下面是我实际用的shell脚本内容:
db_up_tool.sh

wdb_def="auth"
printf "What is your World database name ?\t[${wdb_def}]: " read wdb wdb=${wdb:-${wdb_def}} printf "What is your MySQL password ?\t [], " mysql_config_editor set --login-path=local --host=127.0.0.1 --port=3306 --user=root --password --skip-warn printf "Updating data into the character database ${wdb}\n" for file in $(ls *.sql | tr ' ' '|' | tr '\n' ' ') do file=$(echo ${file} | tr '|' ' ') printf "Applying update ${file}\n" mysql --login-path=local -q -s ${wdb} < ${file} done 

wdb_def是我默认的数据,运行后会提示你输入需要导入的数据,及密码,端口和账号脚本写死了,不同的需要自己改下。没有写选择路径,直接吧脚本到sql所在的文件夹

$./db_up_tool.sh

运行就可以了,会遍历当前的文件夹内所有‘*.sql’的文件。

转载于:https://www.cnblogs.com/ai594ai/p/7883130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值