分类目录归档:运维技术

分享下平时遇到的一些问题及解决方法,主要是服务器环境之类的疑难杂症吧,一起交流呢。

mysql无法连接(10055),重启iis或服务器才能恢复

这个问题的现象是网站会提示无法连接数据库,phpmyadmin当然也无法连接,重启mysql没有效果,需要重启iis才能恢复正常,一段时间后仍然出现相同问题。

由于服务器没有mysql日志,看不到错误号,不过在一次无意间重置其中一个数据库的密码是提示10055,这个错误是由于“系统缓冲区空间不足或列队已满,不能执行套接字上的操作”,应该是哪个网站程序连接导致的,服务器网站数量不少,短时间内无法检查,先想办法能不能避免这个问题吧。如此奇怪的问题还是第一次遇到,综合网上的搜索结果我是这么设置的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay 修改为30-60之间的双字节,另外有一部分观点认为是并发连接过多,虽然我认为修改这个能解决的可能性不大,但是也修改了mysql最大连接数,改成了1000。

以上是我第一次的处理方法,不过这一回合扑街了,这果断不能忍啊。

于是准备找到“真凶”,先看下3306的连接情况吧

C:\Documents and Settings\Administrator>netstat -aon|findstr “3306”
  TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 2860
  TCP 127.0.0.1:2635 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2638 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2643 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2652 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2663 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2665 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2667 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2668 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2670 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2671 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2672 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2678 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2685 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2689 127.0.0.1:3306 TIME_WAIT 0
  TCP 127.0.0.1:2693 127.0.0.1:3306 TIME_WAIT 0

 

好像是有点问题,不过意义不大,然后检查了事件查看器,没有异常的报错,不过安全性中有几个用户异常,既然有异常就先停止账户吧。这边顺带说一下事件查看器的检查,如果你也是遇到这个问题,而事件查看器中有ID:333 注册表启动的 I/O 操作恢复失败 的类似报错可以看下微软的解决方法:http://support.microsoft.com/kb/970054/zh-cn ,这个我没测试过的。

第二次的检查没什么实质性的操作,不出所料再次扑街。

花了这么长时间还是无法解决让我准备重做系统了,不过我想这并非系统问题,还是原来的网站还是会出现同样的问题吧,于是我先做了第三次操作,设置了一个重启iisreset的任务计划,时间间隔自己看情况设置,访问量大的服务器不建议这样设置。

这招属于伤敌一千自损八百呀,要是有完美的解决方法我再更新吧。

mysql忘记root密码的快捷处理方法

由于平时接触mysql5.0 和 5.5会比较多,下面分享一个修改root密码的小工具,自己测试mysql 5.0没有问题,mysql 5.5应该是无法使用这个小工具的,其他版本未知。

下载 MySQL密码修改工具(适用5.0版本).rar 提取密码:jl95

完全傻瓜操作,一个.bat文件,打开后输入mysql回车,输入需要设置的新密码回车,会提示是否修改成功。

动手能力强的可以使用下面的方法,5.0和5.5都适用。

1、停止MYSQL服务,开始–运行–cmd,输入 net stop mysql

2、上面CMD命令行窗口不要关闭,进入MYSQL安装目录的bin 比如cd C:\Program Files\MySQL\MySQL Server 5.0\bin 根据你的路径修改。

3、进入mysql安全模式,即当mysql起来后,不用输入密码就能进入数据库。
命令为:mysqld-nt –skip-grant-tables (注意skip前面是两横–)
(Mysql 5.5为:mysqld –skip-grant-tables)

4、重新打开一个CMD命令行窗口,输入mysql -uroot -p,使用空密码的方式登录MySQL(不用输入密码,直接按回车)

5、输入以下命令开始修改root用户的密码(注意:命令中mysql.user中间有个“点”)
mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;

6、刷新权限表 mysql> flush privileges;

7、退出 mysql> quit

这样root密码就已经重新设置好了,然后在任务管理器里结束掉 mysql-nt.exe 这个进程,重新启动MYSQL即可!(也可以直接重新启动服务器)

MYSQL重新启动后,就可以用你修改的root密码登陆mysql了.