第一种是:
直到今天才想到了微软的KB967723补丁,
微软补丁造成MYSQL经常连接失败解决方法微软补丁KB967723造成MYSQL经常连接失败解决方法
有以下两种方法:
1,卸载微软补丁KB967723 (
不建议)
步骤:在 添加和删除程序 中(勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后重启数据库服务器。
2,修改注册表(
推荐此方法)
本方法是微软给出的修改注册表修复该Bug的的方法,
原因是TCP 端口的默认值 是 5000 。建议调整TCP端口值为65533。
步骤:找到注册表路径 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新增 MaxUserPort
值名称: MaxUserPort
值类型: DWORD
建议值为 65533 {有效范围: 5000 65534 (十进制)}
退出注册表,重启服务器即可。
微软原文地址 :
http://support.microsoft.com/kb/q196271
第二中:MYSQL达到最大连接数
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword
设置新的最大连接数为200:mysql> set GLOBAL max_connections=200
显示当前运行的Query:mysql> show processlist
显示当前状态:mysql> show status
退出客户端:mysql> exit
查看当前最大连接数:mysqladmin -uusername -ppassword variables
方法三:以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:
vi /usr/local/mysql/bin/mysqld_safe
找到safe_mysqld编辑它,找到mysqld启动的那两行,在后面加上参数 :
-O max_connections=1500
具体一点就是下面的位置:
用红字特别说明:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
eval "$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1"
保存。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
输入root数据库账号的密码后可看到
max_connections 1500 即新改动已经生效。
还有一种方法,
修改原代码:
解开MySQL的原代码,进入里面的sql目录修改mysqld.cc找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
把它改为:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
0},
存盘退出,然后./configure ;make;make install可以获得同样的效果。
第三\
2)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。
3)检查 my.ini 里的 basedir (MySQL 安装地址) 和 datadir (数据目录存放地址)等参数设置是否正确,然后重新启动下 MySQL 服务。
4)如果在刷新后偶尔能够正常显示而且服务器是Windows系统的话,那么减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)此项设置需要到注册表如下位置进行设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay 如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型数值设置为30 ~ 60 之间即可。
Windows 下:
1、启动MySQL服务:net start mysql
2、停止MySQL服务:net stop mysql
3、重启MySQL服务:net restart mysql
Linux下:
1、Linux系统下启动MySQL的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
2、linux下重启MySQL的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3、linux下关闭MySQL的命令:
mysqladmin shutdown
/ect/init.d/mysql shutdown (前面为mysql的安装路径)