给上一篇文章配套个脚本方便大家实现删除大量数据。
废话不多说,直接上脚本:
#!/bin/bash
mx1=`ps aux | grep "deletedata.sh" | grep -v "grep" | wc -l`
ps aux |grep "deletedata.sh" |grep -v "grep"
echo ${mx1}
if [ ${mx1} -gt 3 ]; then
echo "deletedata.sh already run!"
exit 0;
fi
n=1
#echo "Starting to delete..."
date
while [ $n -lt 20 ];
do
/usr/local/mysql/bin/mysql -uroot -ppassword -S /var/run/mysqld/mysqld.sock << EOF
use logdata;
delete from log_record where id<141081124 limit 10000;
quit
EOF
echo "Excute $n times... have a reset!"
sleep 1
let n=n+1
done
echo "done"
date
说明:
红色字那行是连接数据库的命令,采用了使用sock文件的方式,如果使用IP连接方式要使用“-h”参数。另外请自行更换命令中用户名和密码。
蓝色字部分是SQL语句,请自己更换数据库名、表名和字段名,以及条件。本例每次取10000条操作,根据实际情况自行更改。