show processlist 出现很多
unauthenticated user | connecting host | NULL | Connect | 179 | login
出现这种情况很大可能是因为DNS导致的,可以通过跳过dns解析skip-name-resolve来解决
进一步查看日志
也有可能是back_log值打满了。
back_log:如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时back_log值不能超过TCP/IP连接的侦听队列的大小。
查看错误日志
[ERROR] Threadpool could not create additional thread to handle queries, because the number of allowed threads was reached. Increasing 'thread_pool_max_threads' parameter can help in this situation.
线程池满了,连接池也打满。将unauthenticated user杀掉
for id in `mysqladmin -uroot -p"pass" processlist|grep -i "unauthenticated"|awk '{print $2}'`
do
mysqladmin -uroot -p"pass" kill ${id}
done
或
mysql -uroot -p -S /tmp/mysql.sock -e "select * from information_schema.processlist where USER in('unauthenticated user') and command !='sleep' and time >100" | awk '{print "kill " $1 ";"}'>/tmp/a.txt
source /tmp/a.txt;