Mysql mysql lost connection to server during query 问题解决方法

缘由: 在查询Mysql中的数据库,或者修改比较大的表的时候就会出现这种情况;
google之:
方案1.在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve.需要重启mysql服务.
 
方案2.在hosts文件内添加: ip与主机名的映射关系,如: 127.0.0.1 localhost. 这种方式不用重启mysql服务.
---------------------------
三个层面上解决这个问题:
1. 代码层面,你需要在自己的PHP数据库连接处增加大致如下代码。
if( in_array(mysql_errno(), array(2006, 2013))){
         mysql_close();
         mysql_connect(...);
        mysql_query(...);
}
也就是说遇到2006,2013错误就重新连接一下MySQL。
2. MySQL层面,需要配置一些参数 my.cnf (但是这里是linux下,我的windows配置怎么办?)
wait_timeout = x 超时时间 如600秒
max_allowed_packet = y 最大允许数据量
适当增加x,y的值。
3. 一般出现这种情况不是所有例句而是单个表,请你先修复表一般都能解决这类问题。
----------------------
MySQL Error 2013: Lost connection to MySQL server during query
错误代码: 1153 - Got a packet bigger than 'max_allowed_packet' bytes
解决方法:
修改mysql.ini(网上都说是这个文件,找了N久终于知道在哪里了,我的目录是在 D:\MySQL_Data\MySQL Server 5.5 在MySQL_Data文件夹下)文件添加如下代码即可
max_allowed_packet=500M

如果不可以的话就修改D:\MySQL\MySQL Server 5.5\my-huge.ini
里的max_allowed_packet=16M 把16改为500
我是根据此方法做的,试试
----------------------
4. 可以直接在mysql中设置:
#show variables like '%timeout%';
#show variables like 'max_allowed_packet'
set global wait_timeout=60000;

#set global max_allowed_packet = 2*1024*1024

--本篇文章转自:https://www.douban.com/note/310779992/

`Lost connection to server during query` 这种错误信息通常出现在MySQL服务器端,表明查询操作正在进行时,客户端突然中断了与数据库服务器之间的连接。这可能是由于多种原因造成的: ### 可能的原因 1. **网络问题**:客户端和服务器之间可能存在暂时性的网络连接问题,如网络断开、网络延迟过高或防火墙阻止了正常的数据传输。 2. **资源限制**:如果服务器上的资源(如内存、CPU、磁盘空间等)不足,可能导致新请求无法立即处理而被挂起,最终导致与当前正在运行的查询会话失去连接。 3. **超时设置**:查询时间过长,超过了MySQL服务端的等待超时配置,导致服务端主动断开了连接。 4. **事务管理问题**:在执行涉及复杂事务的操作时,如果有特定的事务隔离级别设置或并发控制策略过于严格,可能会导致长时间未响应的查询被放弃,从而触发此错误。 5. **系统异常或重启**:在执行查询期间,服务器因为系统异常、维护或自动重启等原因中断了数据处理流程。 6. **软件版本或驱动兼容性问题**:使用的MySQL客户端工具或驱动程序与服务器版本存在兼容性问题,可能会影响连接稳定性。 ### 解决方案 1. **检查网络连接**:确认客户端与服务器之间的网络连通性和稳定性,可以尝试ping测试或者使用命令行测试SQL连接是否成功。 2. **优化查询性能**:分析查询效率,避免复杂的SELECT语句,减少JOIN操作的数量,使用索引加速查询,合理分页结果集,以及尽量减少存储过程或函数内部的大数据操作。 3. **调整等待超时参数**:在MySQL配置文件中增加`wait_timeout`和`interactive_timeout`的值,允许更长的时间执行查询而不被终止。 4. **监控资源消耗**:通过监控工具查看服务器资源使用情况,及时发现并解决高负载问题。 5. **升级硬件或调整资源配置**:如果是资源限制导致的问题,考虑升级服务器硬件,增加内存或提升计算能力,或是对数据库架构进行优化,合理分配负载。 6. **更新客户端及服务器版本**:确保使用的MySQL客户端和服务器版本相互兼容,并定期更新到最新版本,修复已知的安全漏洞和功能问题。 7. **审查和优化数据库设计**:避免不必要的大表联查,使用视图缓存结果集,以及适当的分区策略来提高查询性能。 8. **故障恢复计划**:对于关键业务,应制定详细的故障恢复计划,包括定期备份、快速切换主从复制实例或其他灾备措施,以防万一发生不可预见的情况。 通过上述步骤,可以有效地定位和解决 `Lost connection to server during query` 错误,保证数据库系统的稳定性和高效运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值