#!/bin/bash
#连接mysql
MYSQL='mysql -uroot -p'!QAZxsw2#EDC' -A -N'
#这里面有两个参数,-A、-N,-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题
#-N,很简单,Don't write column names in results,获取的数据信息省去列名称
databases="payment"
for key in $databases;
do
#进入数据库下,获取数据库下的所有数据表
sql_tab="use "${key}";show tables;"
res_tables="$($MYSQL -e "$sql_tab")"
#数据表循环判断
for tab in $res_tables;
do
sql_tab_count="select count(*) as count_num from "${key}"."${tab}
res_count="$($MYSQL -e "$sql_tab_count")"
echo $sql_tab_count
echo $res_count
#判断是否大于10000数据
if [ $res_count -gt 10000 ];then
mysqldump -uroot -p'!QAZxsw2#EDC' -d ${key} ${tab} > /root/mysqlDir1/payment/${tab}".sql"
else
mysqldump -uroot -p'!QAZxsw2#EDC' ${key} ${tab} > /root/mysqlDir/payment/${tab}".sql"
fi
done
done