mysql机制_Mysql 重连机制<转载>

2023-10-27

连续两天早上发现服务上不去了,mysql server has gone away, 然后又通过mysql客户端连了一下mysql,没问题,看来是程序写错了,我的connection没有重连机制。

查了一下相关的资料,django是每次操作都重新建立连接,执行完理解关闭连接。所以说django的ORM部分没有问题,出问题的是我自己建立的mysql 连接。

另外:

fromdjango.coreimportsignals

fromdjango.dbimportclose_connection

# 取消信号关联,实现数据库长连接

signals.request_finished.disconnect(close_connection)

可以通过以上代码实现django长连接。目前看来,性能上没有明显瓶颈,所以不打算加入到代码里。

OperationalError(2006, 'MySQL server has gone away') 的原因

原因1. 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端的timeout,被server强行关闭。

此后再通过这个connection发起查询的时候,就会报错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 seconds

mysql> 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)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql机制_Mysql 重连机制<转载> 的相关文章

  • android28 startActivity启动流程分析(二)--ActivityStarter对象的获取和execute()

    ActivityManagerService startActivityAsUser gt ActivityStarter execute 在startActivityAsUser 方法中 先获取ActivityStarter实例 然后通过
  • 创建和管理表【DDL】

    目录 引入 一 创建和管理数据库 lt 一 gt 创建数据库 lt 二 gt 管理数据库之使用数据库 lt 三 gt 管理数据库之删除数据库 lt 四 gt 管理数据库之修改数据库 一般情况下不会改库 二 创建和管理数据表 lt 一 gt
  • java输入对话框_Java语言程序设计(五)从对话框获取输入及String类型

    1 String类型 char类型只能表示一个字符 为了表示一串字符 使用成为String 字符串 的数据类型 例如下述代码将消息声明为一个字符串 String message Welcome to Java String实际上与Syste
  • 敏捷开发“松结对编程”实践之五:代码检查篇(大型研发团队,学习型团队,139团队,师徒制度,代码审查)

    转载自 http blog csdn net cheny com article details 6594507 本文是 松结对编程 系列的第五篇 之一 之二 之三 之四 之五 之六 之七 之八 此系列之九及之后文章请见栏目总目录 松结对和
  • 基础 - JSON

    JSON JavaScript Object Notation 时下最流行的数据交换格式 特点 键和值 都必须包裹在引号中 语法 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 格式 var JSON name WeWeZh
  • Java Future接口、Future模式理解

    Future接口介绍 在Java中 如果需要设定代码执行的最长时间 即超时 可以用Java线程池ExecutorService类配合Future接口来实现 Future接口是Java标准API的一部分 在java util concurre
  • google-java-app-engine

    http code google com appengine docs java tools uploadinganapp html Uploading the App java app 的说明 PS google已经统治了地球了
  • 如何解决二分类中的样本不平衡问题

    在搭建模型时 二分类中 经常会遇到目标变量的分类数量相差很大 比如分类是1的数量是5000 分类是0的数量是100 这样如果对数据的不平衡性不做处理 模型的效果也会很差 今天用一个案例来进行实操 1 案例目的 找出有资金需求的中小企业借贷户
  • 中手游上半年扭亏为盈,仙剑IP魅力不减?

    你也曾有过江湖梦吗 你也曾因 为国为民 为友为邻 的侠者心无处可安而苦恼吗 那么 仙剑 系列游戏或许可以成为你的灵魂寄托之所 而能让侠者的江湖梦具象化的幕后厂商 便是中手游 两年前 中手游斥巨资买下了仙剑IP的大陆地区权益 两年内 中手游不
  • Zookeeper集群启、停、状态查看脚本

    zk sh bin bash if lt 1 then echo Please type parameter like
  • 工业物联网与其他物联网应用有哪些不同?

    物联网在众多的细分领域里早已让相关的企业实现了颠覆性的转型 这些领域涵盖了消费物联网 智慧农业领域 医疗保健 制造业领域和公用事业领域等等 工业物联网作为物联网一个不容忽视的子集 它专注于解决工业应用中的特殊要求 如制造业 石油和天然气及公
  • [MySql]基本知识及表的创建

    目录 1 数据库的操作 2 常用的数据类型 2 1数值类型 2 2字符串类型 2 3日期类型 3 表的操作 4 使用示例 1 数据库的操作 show databases 显示当前数据库 create database database na
  • linux服务器安装mysql步骤详解

    还是按照菜鸟教程上的顺序进行安装 踩的坑还是比较少的 MySQL 安装 菜鸟教程 1 安装前 我们可以检测系统是否自带安装 MySQL rpm qa grep mysql 2 如果你系统有安装 那可以选择进行卸载 rpm e mysql 普
  • ModBus协议部分功能码设计与实现方法(QT环境)

    写在前面 资源 QT环境下实现资源 1 调研 1 1 什么是Modbus Modbus由MODICON公司于1979年开发 是一种工业现场总线协议标准 1996年施耐德公司推出基于以太网TCP IP的Modbus协议 ModbusTCP M
  • (9)目标检测_SSD的原理

    0主要参考原理来源 1 SSD 论文 代码 pytorch zonechen 博客园 2 python ssd目标检测 目标检测之SSD算法实现 Pytorch weixin 39805734的博客 CSDN博客 3 2 1SSD算法理论
  • Python教程:Python3.8了解差不多了,Python3.9新特性了解一下

    本期Python教程将解释 Python 3 9 中的新特性 而不是 3 8 官网目前也只有 3 8 的下载包 3 9 需要自己编译 Cpython 语言上的变化 1 使用 Python 进行相对导包的时候 import 出现异常时类型由原
  • 启动失败 Failed to determine a suitable driver class 问题解决方案

    1 问题描述 启动报错 Description Failed to configure a DataSource url attribute is not specified and no embedded datasource could
  • GFS故障解决

    一 问题描述 之前 两台数据库服务器安装了两个实例 共享磁盘阵列 通过ASM管理 日志文件和控制文件等 通过GFS实现共享存储文件同步 系统工作正常 某天加入第三个节点时失败 集群正常使用就没再管它 某日 数据库异常 重启操作系统后 GFS
  • Spring Boot整合Mybatis-Plus快速入门(二)

    之前快速搭建项目中 创建的类名与表名以及属性名都是一致的 所以mybatis plus可以根据类名以及属性名进行对应的操作 那么如果表名与属性名中不一致或属性名与列名不一致时我们应该怎么处理呢 这里mybatis plus为我们提供了很多注

随机推荐

  • 解决VMware14打开虚拟机黑屏问题

    最近把VMware升级到14 0之后 运行虚拟机之后无法显示图像 屏幕一团黑 但点击显示缩略图的时候是可以看到系统已经启动并在正常运行的 可以通过以下方法解决 以管理员身份打开命令提示符 输入命令 netsh winsock reset 重
  • 知识图谱(七)——事件抽取

    文章目录 一 任务概述 1 事件的定义 2 事件抽取的定义 3 相关评测和语料资源 二 限定域事件抽取 1 基于模式匹配的事件抽取方法 1 有监督的事件模式匹配 2 弱监督的事件模式匹配 3 优缺点 2 基于机器学习的事件抽取方法 1 有监
  • arm-none-eabi-gcc编译、链接选项详解

    1 mthumb 和 mthumb interwork mthumb 的意义是 使用这个编译选项生成的目标文件是Thumb指令的 目前还没有发现GNU编译器中有哪一个选项可以指定生成的目标文件是thumb 2的 相对应的 marm 的意义是
  • 多态,虚函数,纯虚函数

    多态 借助虚函数 基类指针既可以使用基类 父类 的成员函数 也可以使用派生类 子类 的成员函数 它有多种形态 或多种表现方式 这就是多态 简单说就是同一条语句可以执行不同的操作 看起来有不同表现方式 这就是多态 构成多态的条件 多态存在的三
  • .net 平台下的数学库math.net(一)

    Math NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算 科学运算 它是C 开发的开源类库 Math NET含了一个支持线性代数的解析器 分析复杂微分 解方程等等功能 这个项目大部分采用的是MIT X11开源软件协议 目前该组
  • ConstraintLayout实用特性

    转载自赵彦军的博客 前言 在2016年的Google I O大会上 Google 发布了Android Studio 2 2预览版 同时也发布了Android 新的布局方案 ConstraintLayout 但是最近的一年也没有大规模的使用
  • 【ABviewer从零开始教学查看器篇②】关于打开文件的快捷方式

    ABViewer是一款高质量 高效率 低成本的多功能设计及工程文档管理工具 能为您提供全面的专业的浏览及编辑功能 同时支持30多种光栅和矢量图形格式 在小编看来 ABViewer是一款非常简单且实用的CAD文档查看与编辑器 对于使用小白可能
  • 判断是否是数组

    整理了一些 留待自己复习用 1 instanceof var a name fangxiaoming age 19 var b 1 2 3 4 console log a instanceof Array false console log
  • 【翻译】我们建立了一个.NET操作员SDK(所以您不必这样做)。

    我们用C 语言构建了一个 NET操作者SDK 因此您可以用C 或任何 NET语言构建自己的Kubernetes操作者 当然也 有Go Operator SDK 还有我们的Java Operator SDK 那么为什么不为 NET社区提供一些
  • 用 Visual Studio 2019 编译 FFmpeg 简单教程

    需要的东西 Visual Studio 2019 这个自行解决吧 本人用的是社区版 MSYS 环境 去 https www msys2 org 下载 本人下载的是 msys2 x86 64 20210725 exe yasm exe 去 h
  • Security in IP-Based IoT Node and Device Authentication

    Abstract The IoT security aims for enabling IoT data protection in various interconnected nodes These frameworks require
  • 触屏fling/scroll/drag的区别及其详细过程

    原文地址 Android 触屏fling scroll drag的区别及其详细过程 作者 飘锦丹枫 Google了一下 终于搞清了touch screen下的几种操作模式 对应的是事件 对于一个view 常用的操作有点击 click 和长按
  • 原生js实现ajax请求(带请求头header)和数据传参过程代码

    一 Ajax 概述 Ajax 是 Asynchronous Javascript And XML 的简写 Ajax是一门技术 并不是一门语言 使用XHTML CSS来标准化呈现 使用XML和XSLT进行数据交换及相关操作 使用XMLHttp
  • java程序输出中文乱码解决方案

    标题java程序输出中文乱码解决方案 乱码如下 你好 在一些Java程序中我们输入的中文在输出时会出现乱码的情况 一下是解决方案 1 在编译xx java文件时使用javac encoding utf 8 xx java语句进行编译可以解决
  • sed 过滤字符文本 (一行行的)

    前面写过用sed对整个文件过滤的 代码很简单 现在这个是能够取出其中的一行行来过滤的 为了获取更多的相关信息 注意列表中的空格先变为 然后再变回来 不然会出错 bin sh i grep chenbing my c temp sed s g
  • 关于代码评审

    总结于 代码之丑 专栏 郑晔 为何要做代码评审 代码评审 也就是很多人熟悉的 Code Review Wikipedia 上定义是这样的 代码评审 是指对计算机源代码系统化地审查 常用软件同行评审的方式进行 其目的是在找出及修正在软件开发初
  • c#处理json数据

    这篇文章讲的很详细 亲测可行 此外我在添加一点注意事项 1 json转C 实体类 之前用了一个转的不行 害的我半天弄不出来 后面找到一个 JSON转C 实体类 BeJSON com 这个转出来的很不错 一下子就成功了 2 如果想在没有环境的
  • Chrome插件消息传递实例

    首先吐槽 360极速浏览器应用开发平台 的开发文档 在消息传递 http open chrome 360 cn extension dev messaging html 一节中 翻译极其低劣 Sending a request from t
  • SpringBoot通过自定义字段注解以及反射获取对象

    在Java的开发过程中 注解的应用场景是非常广泛的 Java也提供了很多内置的注解 比如 Override Deprecated SuppressWarnings等等 之前也写过一篇注解相关的文章 SpringBoot自定义注解 AOP以及
  • mysql机制_Mysql 重连机制<转载>

    连续两天早上发现服务上不去了 mysql server has gone away 然后又通过mysql客户端连了一下mysql 没问题 看来是程序写错了 我的connection没有重连机制 查了一下相关的资料 django是每次操作都重