解决: Error Code: 2013. Lost connection to MySQL server during query
执行SQL语句:
updatetable_C, table_Aset table_C.colC = table_A.colA where table_A.anotherId= table_C.anotherId
实现:
更新table_C中的字段col_C中的数据,数据来自table_A中的字段col_A,通过非主键一一映射。
即更新表中字段的数据,数据来自另一张表中的字段。
报错:
Error Code: 2013. Lost connection to MySQL server during query600 sec
运行环境:
MySql Workbench 6.1
Windows 7, Service Pack 1
操作服务器上的数据库,不是本地数据库
两张表都有几万条数据
解决:
一.修改服务器超时限制
二.修改服务器接受的数据包大小限制
三.优化SQL语句
一.
依次进入Mysql -- Edit-- SQL Editor
修改keep-alive interval 和 read time out 为1800(原来是600),如图1
文章图片
图1
二.
定位到Workbench安装目录,
找到my-large.ini 和 my-huge.ini (使用通配符 my*ini 查找)
修改my-large.ini 和 my-huge.ini 中的 max_allowed_packet 为16M,如图2
文章图片
图2
网上很多文章中说要修改 my.ini 中的 max_allowed_packet ,但本例中的 my.ini 中 没有max_allowed_packet 这个字段 (不排除可以自行添加的可能性)
三.
SQL语句改为:
update table_Cset table_C.col_C =
(selecttable_A.col_A from table_Awhere table_A.anotherid = table_C.anotherid)
注意:
异常进程也会影响执行结果
#查看正在执行的进程
【解决: Error Code: 2013. Lost connection to MySQL server during query】show full processlist;
#强制结束一场进程
kill 123456
参考网文
jason-zhang. 数据库中将一张表的某些字段更新到另外一张表中. http://my.oschina.net/JasonZhang/blog/94231
php_sir. MySQL 错误 2013 Lost connection to MySQL server during query. http://blog.sina.com.cn/s/blog_5f66526e0100t8hj.html
Quincylk. mysql max_allowed_packet查询和修改. http://blog.csdn.net/quincylk/article/details/19401695
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- leetcode|leetcode 92. 反转链表 II
- LintCode|LintCode 545 [Top k Largest Number II]
- Spark|Spark 数据倾斜及其解决方案