广告
返回顶部
首页 > 资讯 > 数据库 >MySQL Server has gone away报错原因有哪些
  • 700
分享到

MySQL Server has gone away报错原因有哪些

2024-04-02 19:04:59 700人浏览 薄情痞子
摘要

本篇文章为大家展示了MySQL Server has Gone away报错原因有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。背景平时与开发交流,或在论坛回答

本篇文章为大家展示了MySQL Server has Gone away报错原因有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

背景

平时与开发交流,或在论坛回答问题时,发现这个问题被问及的频率非常高,例如: 程序中报错“Mysql server has gone away”是什么意思?  如何避免? 因此,感觉有必要总结一下发生这个问题的原因。

正好看到一篇外文blog总结的比较好,就翻译过来了,分享给大家。

原因一: MySQL 服务宕了

判断是否属于这个原因的方法很简单,执行以下命令,查看mysql的运行时长:

$ mysql -uroot -p -e "show global status like 'uptime';"+---------------+-------+  | Variable_name | Value |  +---------------+-------+  | Uptime | 68928 |  +---------------+-------+  1 row in set (0.04 sec)

或者查看MySQL的报错日志,看看有没有重启的信息:

$ tail /var/log/mysql/error.log 130101 22:22:30 InnoDB: Initializing buffer pool, size = 256.0M 130101 22:22:30 InnoDB: Completed initialization of buffer pool 130101 22:22:30 InnoDB: highest supported file fORMat is Barracuda. 130101 22:22:30 InnoDB: 1.1.8 started; log sequence number 63444325509 130101 22:22:30 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 130101 22:22:30 [Note]   - '127.0.0.1' resolves to '127.0.0.1'; 130101 22:22:30 [Note] Server Socket created on IP: '127.0.0.1'. 130101 22:22:30 [Note] Event Scheduler: Loaded 0 events 130101 22:22:30 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.28-cll'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL CommUnity Server (GPL)

如果uptime数值很大,表明MySQL服务运行了很久了,说明最近服务没有重启过。  如果日志没有相关信息,也说明MySQL服务最近没有重启过,可以继续检查下面几项内容。

原因2:连接超时

如果程序使用的是长连接,则这种情况的可能性会比较大。 即某个长连接很久没有发起新的请求,达到了server端的time  out,被server强行关闭。此后再通过这个client发起查询的时候,就会报错server has gone away。

$ mysql -uroot -p -e "show global variables like '%timeout';"+----------------------------+----------+  | Variable_name | Value |  +----------------------------+----------+  | connect_timeout | 30 |  | delayed_insert_timeout | 300 |  | innodb_lock_wait_timeout | 50 |  | innodb_rollback_on_timeout | OFF |  | interactive_timeout | 28800 |  | lock_wait_timeout | 31536000 |  | net_read_timeout | 30 |  | net_write_timeout | 60 |  | slave_net_timeout | 3600 |  | wait_timeout | 28800 |  +----------------------------+----------+mysql> SET SESSION wait_timeout=5;#Wait 10 secondsmysql> SELECT NOW();  ERROR 2006 (HY000): MySQL server has gone away  No connection. Trying to reconnect...  Connection id: 132361  Current database: *** NONE ***+---------------------+  | NOW() |  +---------------------+  | 2013-01-02 11:31:15 |  +---------------------+  1 row in set (0.00 sec)

原因3: 进程在server端被主动kill

这种原因和第2种原因比较相似,只是发起者是DBA,或者其他job,发现有长时间的慢查询执行kill xxx导致。

$ mysql -uroot -p -e "show global status like 'com_kill'"+---------------+-------+  | Variable_name | Value |  +---------------+-------+  | Com_kill | 0 |  +---------------+-------+

原因4: Your SQL statement was too large

当查询的结果集超过 max_allowed_packet 也会出现这样的报错,定位方法是打出相关报错的语句。 用select*into outfile  的方式导出到文件,查看文件大小是否超过max_allowed_packet,如果超过则需要调整参数,或者优化语句。

mysql> show global variables like 'max_allowed_packet';  +--------------------+---------+  | Variable_name | Value |  +--------------------+---------+  | max_allowed_packet | 1048576 |  +--------------------+---------+  1 row in set (0.00 sec)# 修改参数:mysql> set global max_allowed_packet=1024*1024*16;mysql> show global variables like 'max_allowed_packet';  +--------------------+----------+  | Variable_name | Value |  +--------------------+----------+  | max_allowed_packet | 16777216 |  +--------------------+----------+  1 row in set (0.00 sec)

上述内容就是MySQL Server has gone away报错原因有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL Server has gone away报错原因有哪些

本文链接: https://www.lsjlt.com/news/67570.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL Server has gone away报错原因有哪些
    本篇文章为大家展示了MySQL Server has gone away报错原因有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。背景平时与开发交流,或在论坛回答...
    99+
    2022-10-19
  • MySQL server has gone away错误的一些常见原因分析
    发生MySQL server has gone away的最常见原因是连接闲置超时,被服务器中断连接。默认情况下,服务器关闭空闲时间超过8小时的连接,可以通过设置变量wait_timeout,来改变默认值8...
    99+
    2022-10-18
  • 出现MySQL server has gone away这个错误的原因是什么
    本篇内容主要讲解“出现MySQL server has gone away这个错误的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“出现MySQL se...
    99+
    2022-10-18
  • PHP程序mysql报mysql has gone away错误的原因及解决办法
    本文主要给大家介绍PHP程序mysql报mysql has gone away错误的原因及解决办法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下PH...
    99+
    2022-10-18
  • MySQL server has gone away - 如何解决MySQL报错:MySQL服务器连接断开
    引言MySQL是一个流行的开源关系型数据库管理系统,被广泛应用于网站和应用程序的后端数据存储和管理。然而,在使用MySQL时,有时会遇到“MySQL server has gone away”错误,这意味着MySQL服务器与客户端的连接已断...
    99+
    2023-10-21
    MySQL 报错解决 服务器连接
  • MySQL server has gone away - 如何解决MySQL报错:与MySQL服务器的连接断开
    在进行MySQL数据库开发或操作时,经常会遇到一个常见的报错信息:"MySQL server has gone away",这意味着与MySQL服务器的连接已经断开。本文将介绍该问题的常见原因和解决方法,并提供一些具体的代码示例,以帮助读者...
    99+
    2023-10-21
    MySQL报错 - MySQL error 连接断开 - connection lost 解决方法 - troubles
  • SQL Server错误的原因有哪些
    SQL Server错误的原因有以下几种:1. 语法错误:SQL语句语法错误,例如缺少关键字、拼写错误等。2. 运行时错误:SQL语...
    99+
    2023-09-23
    SQL Server
  • json格式报错的原因有哪些
    JSON格式报错的原因可能有以下几种:1. 语法错误:JSON格式要求使用双引号来表示属性名称和字符串值,属性名称必须是字符串,且必...
    99+
    2023-08-16
    json
  • MySQL too many connections错误的原因有哪些
    这篇文章将为大家详细讲解有关MySQL too many connections错误的原因有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   今天中午,开发测试环境的MySQL服...
    99+
    2023-06-14
  • python无效语法报错的原因有哪些
    Rate limit reached for gpt-3.5-turbo in organization org-68Lqb4iD2...
    99+
    2023-10-18
    python
  • vue不加空格会报错的原因有哪些
    本篇内容介绍了“vue不加空格会报错的原因有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue不加空格会报错的5种原因:1、用双斜线注...
    99+
    2023-07-05
  • c语言常见系统报错的原因有哪些
    C语言常见的系统报错原因包括以下几个方面:1. 程序逻辑错误:程序逻辑错误是指程序的设计或者编码错误,导致程序无法正常执行。例如,数...
    99+
    2023-09-25
    c语言
  • mysql中连接数过多导致程序连接报错原因有哪些
    小编给大家分享一下mysql中连接数过多导致程序连接报错原因有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-18
  • MySql总是提示语法错误的原因有哪些
    MySQL提示语法错误的原因可能有以下几个:1. SQL语句拼写错误:在编写SQL语句时,可能会出现拼写错误,如错误的表名、列名等。...
    99+
    2023-08-20
    MySql
  • PHP导入SQL报错的原因有哪些及怎么解决
    这篇文章主要介绍“PHP导入SQL报错的原因有哪些及怎么解决”,在日常操作中,相信很多人在PHP导入SQL报错的原因有哪些及怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP导入SQL报错的原因有哪...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作