mysql插入数据过大, Lost connection to MySQL server

Out of memory (Needed xxx bytes) 

解决的方案是这样的
内存不足,可以适当修改以下参数:(my.ini,my.cnf中的【mysqld】)
key_buffer_size =128M
table_cache =256
sort_buffer_size =2M
read_buffer_size =2M
read_rnd_buffer_size =2M
tmp_table_size=16M
innodb_buffer_pool_size = 128M
innodb_additional_mem_pool_size = 8M
innodb_log_buffer_size = 1M
修改后重启,

Error Code: 2013. Lost connection to MySQL server during query

MySQL关于timeout的处理,记录如下

mysql> show variables like '%time%'; 
+----------------------------+-------------------+ 
| Variable_name | Value | 
+----------------------------+-------------------+ 
| connect_timeout | 10 | 
| datetime_format | %Y-%m-%d %H:%i:%s | 
| delayed_insert_timeout | 300 | 
| flush_time | 1800 | 
| innodb_lock_wait_timeout | 50 | 
| innodb_old_blocks_time | 0 | 
| innodb_rollback_on_timeout | OFF | 
| interactive_timeout | 28800 | 
| lc_time_names | en_US | 
| lock_wait_timeout | 31536000 | 
| long_query_time | 10.000000 | 
| net_read_timeout | 30 | 
| net_write_timeout | 60 | 
| slave_net_timeout | 3600 | 
| slow_launch_time | 2 | 
| system_time_zone | | 
| time_format | %H:%i:%s | 
| time_zone | SYSTEM | 
| timed_mutexes | OFF | 
| timestamp | 1366027807 | 
| wait_timeout | 28800 | 
+----------------------------+-------------------+ 
21 rows in set, 1 warning (0.00 sec) 

修改wait_timeout 的值
更改方法,需同时更改如下2个参数(单位--秒):

set wait_timeout=86400;
set interactive_timeout=86400;





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`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、付费专栏及课程。

余额充值