mysql 2003以及10061错误
今天小编带大家整理总结下(windows各平台)下连接mysql报错2003 can't connect 10060错误解决办法!
环境介绍
- 01
首先,说下小编的环境。 小编的环境是服务器是PHP5.3+Mysql 5.1.48+Apache2.2。 客户电脑,是win7操作系统。所以以下说的是在win7下的操作。别的版本windows原理相通。 (这里说明小编用是虚拟服务器,所以数据库不是我能控制的。) 由于最近单位让做个客户管理系统网络版本,小编接任务超级不爽。工资低呀。还让我做开发,这郁闷的心情一地。(这里发个牢骚)
- 02
小编先搭建了开发环境,之后就开始动手操作了。 做了一会发现有几个windows漏洞,于是就打了下补丁。补丁打完,连接小编准备用sqlyog连接数据库。可是,这时候Sqlyog返回了一个 错误码:2003 不能连接MySql服务器“XXXXXX”(10061)这样一个错误。
- 03
看到错误小编顿时傻眼,郁闷中(心中浮现N多个草泥马)。 顺眼一看,错误信息。按照字面意思那就是不能连接数据库了。 小编第一反应,是不是数据库挂了?速度登陆连接空间上的 phpmyadmin,一连接发现可以登陆。测试写入一个数据,居然也可以写入! 这真是怪了。小编心中的(草泥马比之前还要多的在奔腾)
- 04
这问题,小编真的第一次遇见了。 phpmyadmin可以连接,可是 sqlyog不能连接。 于是小编,搜索了一下发现遇见这样问题的人还真不少。看是看到回答问题的人是少之又少。 小编大概整理了下,网上说的大概就是这几种。 一种是补丁引起的, 一种是3306端口被占用, 另外一种就是被防火墙拦截了3306端口。 另外还有一种就是你的登陆的账户mysql没有给它远程连接的权限。 还有一种就是,mysql连接过多没有被释放连接照成的。
逐步检查问题
- 01
通过搜狗搜索,了解了大概就是这几种问题。于是小编开始排查问题了。 小编第一步就是,看下是否有打了KB967723补丁。 因为小编之前刚修补过漏洞。打开控制面板-》程序和功能-》查看已安装的更新-》搜索KB967723。 如果你到这步发现你已安装,KB967723补丁的话。那么就请卸载此补丁即可。 小编发现并未安装此补丁。
- 02
发现未安装此补丁,小编又开始检查3006端口是否被别的程序占用! 开始菜单-》输入 cmd-》 回车-》cmd输入 cd\-》 回车-》接着输入 netstat -ano-》 回车。 查看是否有3306这几个字。 如果你发现有3306端口的话,那么请关闭占用此端口的程序。即可正常。 小编,查看没有3306端口被占用。(此刻,小编彻底郁闷的无语)
- 03
小编又开始查看是否被防火墙拦截了。 于是小编再打开 开始菜单-》 控制面板-》 windows防火墙-》 打开或者关闭windows防火墙-》 点击关闭windows防火墙(不推荐)这个选项前面的 圆框为防止是防火墙引起的问题,小编直接就关闭了windows防火墙。
- 04
于是小编再次测试依然无效。依然报错。 那么是不是登陆用户没有远程访问权限了?这时候小编突然想起来,phpmyadmin可以登陆,原因是phpmyadmin它是安装在服务器上的。换句话说它是在本地的。也就是本地当人可以访问本地的mysql了。 +++++++++++++++++++++++++++++++++++++++++ 这里小编教大家一个简单查看账号是否有远程登录权限,就是换个网络、换台电脑连接下如果也连接不上。那么肯定没有远程访问权限了。 那么怎么开启某个账号的远程访问权限了? 之需要在mysql中运行下这个命令就可以了。 GRANT ALL PRIVILEGES ON *.* TO '(这里填写要开启远程访问的账号)'@'%' IDENTIFIED BY '(这里是对应的密码)' WITH GRANT OPTION; ++++++++++++++++++++++++++++++++++++++++++ 于是乎,小编联系了空间服务商。空间服务商查看了下,给小编的回复他们测试。可以连接上mysql,使用sqlyog可以连接!而且账号具有远程访问权限。 这让小编有点郁闷了?那为什么我这边连接不上了。是网络问题么?各种(草泥马浮现)
- 05
既然那个空间服务说mysql配置什么的没有问题,那么是不是连接过多没有释放的问题了。 那么怎么解决连接过多,没有释放的问题了? ++++++++++++++++++++++++++++++++++++++++ 一、就是直接重新启动mysql服务(即可)。 二、就是重新安装下mysql服务。分为四个步骤。 第一步删除c:windowns下面的my.ini第二步 找到你的mysql安装目录\bin文件夹下的\mysqladmin.exe第三步 在cmd下 输入 mysqld-nt -remove 删除服务 之后在cmd下进入到你的mysql目录下的bin目录,之后dir查看是否有mysqld.exe。 如果文件存在,那么就再输入mysqld-nt -install。重新安装mysql服务。 第四步 输入mysql 启动sql。 ++++++++++++++++++++++++++++++++++++++++++ 小编又联系空间服务商,他们查看没有连接过多。连接数为0。 (这里小编彻底晕了,因为在那边说一切正常。小编自己就换了一台电脑连接,居然神奇的连接上了。这里小编彻底知道问题还是在自己电脑。) 所以小编彻底郁闷了?什么问题,各种尝试都没用。居然别的电脑可以连接。于是小编各种搜索。最后居然一个礼拜多还是无法解决,到现在解决一个月过去了。
问题解决
- 01
再写着这片文章时候小编的问题刚解决,经过上面那么多以及这段时间的给种研究小编就不一一描述了。 因为也是碰巧,今天小编再给本地做个域名绑定时候。在HOST文件下,赫然写着127.0.0.1 XXXXX.hichina.com服务商的二级域名。 我彻底汗颜,问题居然是被HOST屏蔽了域名。所以照常无法访问这个域名,所以也就无法连接数据库了。
- 02
立刻删除 127.0.0.1 XXXXX.hichina.com
- 03
测试连接,提示成功。 进入mysql。
总结
- 01
经过这一个多月,小编得出的一个结论。mysql提示 错误码:2003 不能连接MySql服务器“XXXXXX”(10061)这个错误。 根本原因就是在你的客户机电脑。就向提示的一样,这个错误声明一样。 这就是客户机无法连接上服务器,不是别的原因。至于网络上的各种答案,很多都是不正确的。 所以归纳,问题就是有两种。一种就是服务器问题。一种就是客户机问题。 将这两个问题再加以阐述的话。 那么,服务器可能照成的问题就是要么是服务器停止服务。要么就是,没有远程连接权限。 对于客户机,问题就是无法连接到服务器。 所以,只要验证服务器没问题。那么就验证客户机是否被拦截TCP连接和端口。就可以了。
- 02
那么像小编的问题了?小编遇到这问题,同样在这些范畴中。 因为域名被屏蔽了,也就是TCP不正常访问工作了。 当我们电脑尝试以TCP协议去访问,被屏蔽的域名时候则被直接HOST转向到自己电脑。 所以,TCP被拦截了。
- 03
在此小编,希望大家不要向小编这样粗心大意。 那么下次,当我们做排除法的时候要记得去访问下你数据的域名。