mysql连接过多和死掉以及拒绝服务的解决方法_Mysql

mysql连接过多导致总是死掉,后来网上搜索发现此文自Mysql 5.x的某个版本之后,Mysql的自动关闭空闲连接的特性修改了,如果一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决:)处理方法:1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如存储过程触发器之类。2.定时重启Mysql服务器或Ser(由于本问题可能同样会影响到其它一些需要Mysql支持的服务器程序,所以重启Mysql服务器为好,但需要检测Mysql服务器不被使用的一个时间重启比较难确定)3.设置my.cnf,有mysqld字段内增加参数:[mysqld]port = 3306socket = /tmp/mysql.sockwait_timeout= 500000interactive_timeout = 500000(500000秒约五六天的超时时间,可根据实际需要选择一个数据库可能空闲的最长时间稍大的时间值。)重启Mysqld应用即可,也可以在执行mysqld时加-o wait_timeout=500000参数同样效果。在mysql客户端show variable时应该可以看到最后一条从默认的wait_time=28000变成500000了。(可能需要重启机子如果重启Mysqld一直不生效的话:)

时间: 2024-12-22 21:52:28

mysql连接过多和死掉以及拒绝服务的解决方法_Mysql的相关文章

MySQL数据库死掉以及拒绝服务的解决方法

从Mysql 5.x的某个版本之后,MySQL的自动关闭空闲连接的特性被修改了,假如一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决. 下文中将具体讲述处理的方法: 1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如存储过程触发器之类. 2.

MySQL中Union子句不支持order by的解决方法_Mysql

本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects

MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解决方法_Mysql

PHP 4.4.1+MySQL 5.1的环境下出现了如下的提示: 复制代码 代码如下: File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 22) Character set '#33′ is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file 查阅一番后基本可以确定原因为低版本的PHP和高版本的M

MySQL的主从复制步骤详解及常见错误解决方法_Mysql

 mysql主从复制(replication同步)现在企业用的比较多,也很成熟.它有以下优点: 1.降低主服务器压力,可在从库上执行查询工作. 2.在从库上进行备份,避免影响主服务器服务. 3.当主库出现问题时,可以切换到从库上. 不过,用它做备份时就会也有弊端,如果主库有误操作的话,从库也会收到命令.     下面直接进入操作.这里使用的是debian5操作系统,mysql5.0,默认引擎innodb      10.1.1.45 主库      10.1.1.43 从库 1.设置主库 1)修

安装MySQL在最后的start service停住了解决方法_Mysql

由于我的MySQL不知道什么原因突然打不开了并报了个10061的错,查了下原因说是因为数据库被连接发生冲突,麻烦死了于是重装,在最后一步的 start service 停了,安装失败,又重装了N次,还是失败.原因是已经装过MySQL的电脑上存在以注册项目,网上有很多说法,和方法,我试了一个成功了.基本步骤一下: 1.卸载MySQL应用程序,要把MySQL的服务业卸载掉,命令窗口使用: sc delete MySQL 2.清理注册表(找出来删掉) 复制代码 代码如下: HKEY_LOCAL_MAC

MySQL下PID文件丢失的相关错误的解决方法_Mysql

今天同事A找到我,说是Mysql server X的负载很高,查询很慢.他自己捣鼓了一阵未果后,我们一起看了下. [root@redhat var]# uname -a Linux xxx 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux [root@redhat var]# mysql -u root -p -e "select version();" +--------

mysql 加了 skip-name-resolve不能链接数据库问题的解决方法_Mysql

mysql 加了 skip-name-resolve不能链接的问题, 要确认 MySql 是否采用过主机名的授权 在 MySql Server 的配置文件 My.ini 中,增加如下两行: [mysqld] skip-name-resolve 它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间. 但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求. 如果开启 ski

phpmyadmin显示MySQL数据表“使用中” 修复后依然无效的解决方法_Mysql

PHP+MySQL后台,部分程序页面不显示内容,错误提示出错,需要修复. 打开phpmyadmin选择数据库查看,果然有3个表显示为"使用中".勾选之后进行"修复表",出现错误提示不能被修复. 于是接着从"分析表"."优化表"开始,均告失败.失败信息第一条:can't create new temp file google解决方案:强制修复 myisamchk -r -f ****.MYI,问题依旧. 第一步:停掉MYSQL服

mysql unsigned 用法及相减出现补数溢出解决方法_Mysql

unsigned 既为非负数,用此类型可以增加数据长度! 例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2 unsigned 属性只针对整型,而binary属性只用于char 和varchar. 类型 说明 tinyint 非常小的整数 smallint 较小整数 mediumint 中等大小整数 int 标准整数 bigint 较大整数 float 单精度浮点数 double 双精度浮点数 decimal 一个串的浮点数 每种数值类型的