A-A+

很让人郁闷的MySQL server on ””localhost”” (10061)错误

2012年03月02日 编程技术 暂无评论

莫名其妙的mysql密码错误,数据库出现提示,配置数据库密码错误,首先想到的就是要修改一下密码,进入mysql配置向导,提示current root password,数入老密码,提示不对。。。只好卸载重装了,最后一步出现Start service和Apply security settings无法完成,前面是打叉。开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法。

大致都是要把mysql删除干净,重装一般就可以解决问题。

首先清除了MYSQL的安装目录,默认是C:\Program Files

接着清除MYSQL数据存放目录,一般在C:\Documents and Settings\All Users.windows\Application Data目录下(需要注意的时Application Data这个文件夹默认是隐藏的,要通过 工具->文件夹选项->查看->显示所有文件与文件夹 来设置隐藏文件可见),然后删除MySQL文件夹,是需要手动来删除的,就是正常按照的文件夹。

最后删除注册表,这步很重要,之前不管我怎么卸载MYSQL清空残余文件都还是要输入原始密码,清空后关于mysql注册的服务信息。

删除注册表数据,通过regedit,删除以下几个文件:

引用

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL

经过这几个步骤,基本上再重装mysql,就没事了,郁闷的是,按照正常的步骤,重装了十几次,问题依然存在,要么就是无法Start service,要么Apply security settings。

干脆把注册表里面所有关于mysql的服务全清了吧,运行进去regedit,查找所有关于mysql注册服务,全部删除,又关掉了所有网络防火器以及杀毒软件,甚至基于局域网的ARP都关掉了,确保不是防火器屏蔽了3306的端口,又查看了进程,没有Mysql进程了,在运行里面运行了一下sc delete mysql,重新安装Mysql,前面的配置一切OK,可是进入到Start service,到最后一步错误又出现了。

难道是端口的问题,又重复上面的安装步骤,这次配置的时候更改成3307端口,还是不行。

百思不得其解中的时候,群里有个朋友说是因为微软KB967723造成的。进入运行appwiz.cpl检查系统更新,找到KB967723删除。

用navicat for mysql来连接,提示 1045 - access denied for user 'root' @ localhost'(using password:NO)还是无法进入mysql数据库,不过根据提示显示是数据库密码错误,重新配置的新密码没有起作用。

尝试一下无密码的状态,只输入了端口和最高权限root,密码为空,正常进入OK。

配置好的密码没有起到作用,如果直接在运行里面修改密码,怕得不到兼容,索性再清除服务器mysql相关服务,重新安装,安装到最后步骤,居然又出现,Can't connect to MySQL server on'localhost'(10061)错误。

再就无论如何也装不上去了,就差重装系统了。

最后理出的思路,重新安装Mysql,用微软自带的Windows update重新更新补丁KB967723,重启服务器,使之生效,然后再卸载KB967723,用空密码连接MYSQL数据库。直接用navicat for mysql的User修改密码。

修改好密码,将自己备份的数据库拷贝到Mysql安装目录data下

重新连接navicat for mysql,查看数据库列表,数据库正常。

总结:关于KB967723,至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决办法只有如此,这是在windows 2003服务器里面出现的问题,我在windows 2008里面也装了Mysql暂无出现这样的问题。

标签:

给我留言