Board logo

标题: [帮助说明] Discuz!Database Error(2005/2003/..)notconnect 解决办法 [打印本页]

作者: 幸福在右    时间: 2013-7-21 18:25     标题: 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下:

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的安装路径)




欢迎光临 安雄互助 (http://help.35isp.com/) Powered by Discuz! 6.0.0