#/usr/bin/bash
user=root
passwd=123456
mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep HA_ERR_FOUND_DUPP_KEY 1>/dev/null
if [ $? -eq 0 ];then
#sql状态
sql_status=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep 'Slave_SQL_Running' | awk '{print $2}' | head -1`
#错误id
error_id=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Errno | awk '{print $2}'`
if [ "$sql_status" == No ] && [ "$error_id" == 1062 ];then
#值
value=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '/Duplicate entry/' | awk -F "'" '{print $2}'`
#数据库名
db_name=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '{print $9}' | awk -F "." '{print $1}'`
#表名
table_name=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '{print $9}' | awk -F "." '{print $2}' | awk -F";" '{print $1}'`
#字段名
column=`mysql -u$user -p$passwd -e "desc $db_name.$table_name" 2>/dev/null | grep PRI | awk '{print $1}'`
#删除错误数据
mysql -u$user -p$passwd -e 2>/dev/null "delete from $db_name.$table_name where $column = $value;"
if [ $? -eq 0 ];then
echo "delete from $db_name.$table_name where $column = $value; $(date "+%Y-%m-%d %H:%M:%S")" >> /home/out_syncfile/$(date "+%Y-%m-%d").log
fi
#开启同步
mysql -u$user -p$passwd -e 2>/dev/null "start slave;"
sleep 0.05
fi
fi