阿里云serverMySQL无法连接问题解决纪实
QQ:溜酒酒吧酒吧吾散
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处
背景:
在调试程序的时候,发现数据库訪问相关的环节出现错误:
12:16:40,941 WARN ThreadPoolAsynchronousRunner:608 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1278b126 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
12:16:40,947 WARN ThreadPoolAsynchronousRunner:624 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1278b126 -- APPARENT DEADLOCK!!! Complete Status:
检查配置项,一切正常。
分析:
1.进入命令行,telnet serverip 3306。是有响应的。
2.用mysqlclient直接连接測试:mysql -hdbhost -uusername -p,报错:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
3.这样的情况还真没遇到过。搜索一下,非常多答案。无非是在my.cnf中去掉bind-address或者加入skip-name-resolve 以加速client连接速度。
看了一下配置文件。第一个根本就没有,第二个加了也没用。
事实上细致分析一下。刚才还好好的,突然不行了。最大的可能不在于server本身,而是网络或者server之外的环境。
4.关闭防火墙:尽管能够telnet通,还是关闭一下试试吧。server和client的防火墙都关了。还是一样。
5.尝试换一个端口号呢?于是,在my.cnf中。[mysqld]端添加一句:port=3307
sudo service mysqld restart。再试,竟然OK了。
结论:
由于这台server仅仅有本人在使用,所以,非常大可能性,是阿里云server环境上有什么外围的设置导致了这个问题。
以上分析过程,希望能够给出现类似问题的同仁带来启示,迅速解决这个问题。