阿里云serverMySQL无法连接问题解决纪实

作者:fbysss
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环境上有什么外围的设置导致了这个问题。

以上分析过程,希望能够给出现类似问题的同仁带来启示,迅速解决这个问题。




原文地址:https://www.cnblogs.com/yangykaifa/p/6856703.html