MySQL DBA
分类: Mysql/postgreSQL
2013-03-07 13:18:21
Error:MySQL server has gone away
在client与server交互过程中,出现此错误的原因为server主动关闭与client的连接。错误码:
Error code |
Description |
CR_SERVER_GONE_ERROR |
向server发送查询失败 |
CR_SERVER_LOST |
Client接收result失败 |
错误原因及解决方案汇总:
1. 连接被kill。如管理在show processlist后kill掉的连接。
2. Client在于server断开连接后发送query。(程序bug)。
3. Client所在host无权限访问mysql server。在程序运行中管理员修改权限并flush,client重连报错。
4. Tcp/ip连接超时。调整超时参数:mysql_opt_read_timeout mysql_opt_write_time。
5. Wait_timeout。2次交互时间超过wait_timeout,将丢失连接。建议此参数设置:172800
6. Interactive_timeout。Client与server交互过程中出现mysql主动关闭连接的超时时间。建议设置为172800。
7. Max_allowed_packed。Query 数据包大于此参数时,server会主动断开连接。默认为1M。根据不同的业务适度调整。建议设置:16M。mysql 4.0及之前版本发送超过16M的包会丢失连接。
8. 域名解析失败。DNS server停止工作及网络超时。以及mysql 启动使用—skip-networking。
9. 线程冲突。Client中各子线程使用同一连接访问mysql ,部分子线程会出现此错误,解决办法为为每一个子线程创建单独的数据库访问连接。
10. Mysql stop。在连接过程中,mysql server crash,正常关闭服务等。
11. Max_connect_errors。Client断开mysql连接后重新请求连接超过最大错误连接数,mysql将其列入'black list'并永久拒绝其连接。建议此参数调整大一些。
12. 用户权限。访问账号的权限不满足其执行的query需要的权限。