Discuz!Database Error(2005/2003/..)notconnect 解决办法

第一种是:

直到今天才想到了微软的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下:

1Linux系统下启动MySQL的命令:

mysqladmin start

/ect/init.d/mysql start (前面为mysql的安装路径)

2linux下重启MySQL的命令:

mysqladmin restart

/ect/init.d/mysql restart (前面为mysql的安装路径)

3linux下关闭MySQL的命令:

mysqladmin shutdown

/ect/init.d/mysql  shutdown (前面为mysql的安装路径)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章