问题描述: windows 2003 平台 mysql 5 的 服务无法启动,显示 1067 错
问题解决过程:
经排查发现 1067错原因在于进程里面还有一个mysqld-nt 没有完全释放,在进程中强制终止后,可以正常启动mysql ,但是远程连接不上,而服务器已经关闭了防火墙等可能屏蔽的因素,一度以为是网络限制了3306端口的访问,可是在外部 nmap 居然可以看到3306端口是open的。在服务器上可以连接 localhost 的mysql 服务器,使用 show processlist; 发下大量的 login 慢请求,显示unauthorized, 判断为mysqld 需要反差ip 的dns name ,再进一步检查发现时服务器的dns server 失效。
问题解决方案:
1) 更换好的names server ip 地址
2) 在my.ini 里面加 [mysqld] 加入 skip-name-resolve 后重启 mysqld ,发下原来无法正常关闭的mysqld-nt.exe 进程也可以完全关闭和正常启动了,问题解决
问题总结:
由于是服务器参数以及程序未作调整而出现问题,所以不应盲目判断为服务器内部问题,多分析状态,思路开阔,根据显示内容去查询搜索引擎,可以快速解决问题
http://www.epnz.com/index.php?aid=68
此文章还提出一个关于skip-name-resolve 的副作用就是 localhost 和 127.0.0.1 的问题
那么此问题,就可以采用方案1来解决,只要确保 name server 一直 ok 就可以,建议采用 google 的 dns name server , ip 是 8.8.8.8