记一次mysql问题解决方案

时间:2012年5月15日
事件:公司网站被刷

这样的,5·1放假我就回家鸟,14号才回的公司,回到公司后前台mm就告诉我:邵总监,公司网站好几天都打不开了,你快看下吧。
放下电脑包,先看下了公司网站,直接蹦达出了:

MySQL Error
Message: Can not connect to MySQL server
SQL:
Error: Can't connect to MySQL server on 'localhost' (10061)
Errno.: 2003

第一感觉可能是mysql被关闭了,但是进了服务器后发现mysql是开启的,于是就重启了下。重启后提示变为了:
1040 too many connections
好吧,那我就把连接数修改大点不就行了?
于是着手开始修改my.ini
max_connections = 100
/这是默认的
修改为
max_connections = 1000
小样,这次看你还不好。
重启mysql后发现又变了。。

我了个擦,内存不足,你开什么菲律宾省玩笑,16G内存不够你用么?
打开任务管理器看了下进程占用的也不多啊,这就奇怪了。
5分钟后刷新了下页面发现错误提示变为了:
Can't create a new thread
mysql链接过多?上面已经提过了,已经改为了1000,怎么可能会不够呢?这让我百思不得其解啊。。。
在别人去吃午饭时我查了下防火墙的日志,发现很多mysql链接,而且一直存活的,这就让我想到了DDoser。
会不会是被刷了mysql呢?如果被刷了mysql的端口也会造成线程过多,那么上面的一些疑问就可以解决了。
继续查日志:






从图中大家都能看出,很明显的mysql被刷了。既然原因找到了,那么就想办法拯救吧~~前台mm还在等我呢。

开启了防火墙防DDoser,但是效果不明显,公司网站还是一死一活的,咱不能给公司丢脸不是?更不能给红盟丢脸不是?
哈哈,仔细一看日志,被刷的是3306端口,如果我改了3306呢?
事实证明这个可以~~










改了后重启mysql,发现还是半死不活,经过一阵摸索,发现是mysql地址也需要改,默认的是localhost,所以要改为localhost:3309
再重启mysql,发现问题解决了。。。防火墙还在拼命的报警被ddos,不管你了~~给前台mm说下去,哈哈。

   如转载请注明来自www.unhonker.com

本文固定链接: https://www.unhonker.com/technical/592.html | 90' s Blog|关注网络信息安全

该日志由 unhonker 于2012年05月15日发表在 技术文章 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 记一次mysql问题解决方案 | 90' s Blog|关注网络信息安全

记一次mysql问题解决方案:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!