【问题】

生产环境有多台slave服务器,不定期的会crash,下面是error log中的堆栈信息

Thread pointer: 0x7f1e54b26410

Attempting backtrace. You can use the following information to find out

where mysqld died. If you see no messages after this, something went

terribly wrong...

stack_bottom = 7f1ed98e6e28 thread_stack 0x40000

/usr/sbin/mysqld(my_print_stacktrace+0x35)[0xf438c5]

/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x7ce014]

/lib64/libpthread.so.0[0x3ef280f7e0]

/usr/sbin/mysqld[0x132713a]

/usr/sbin/mysqld(_Z23well_formed_copy_ncharsPK15charset_info_stPcmS1_PKcmmPS4_S5_S5_+0xba)[0xde2c2a]

/usr/sbin/mysqld(_Z29field_well_formed_copy_ncharsPK15charset_info_stPcmS1_PKcmmPS4_S5_S5_+0x66)[0x7f4e06]

/usr/sbin/mysqld(_ZN10Field_blob14store_internalEPKcmPK15charset_info_st+0x1dc)[0x80037c]

/usr/sbin/mysqld(_ZN17Fill_process_listclEP3THD+0x4c9)[0xd6b089]

/usr/sbin/mysqld(_ZN18Global_THD_manager19do_for_all_thd_copyEP11Do_THD_Impl+0x26d)[0x7cca9d]

/usr/sbin/mysqld(_Z23fill_schema_processlistP3THDP10TABLE_LISTP4Item+0x43)[0xd54143]

/usr/sbin/mysqld[0xd52d57]

/usr/sbin/mysqld(_Z24get_schema_tables_resultP4JOIN23enum_schema_table_state+0x1cc)[0xd52fec]

/usr/sbin/mysqld(_ZN4JOIN14prepare_resultEv+0x6d)[0xd485cd]

/usr/sbin/mysqld(_ZN4JOIN4execEv+0xc0)[0xcde670]

/usr/sbin/mysqld(_Z12handle_queryP3THDP3LEXP12Query_resultyy+0x250)[0xd49370]

/usr/sbin/mysqld(_ZN21Sql_cmd_insert_select7executeEP3THD+0x3bc)[0xe944ac]

/usr/sbin/mysqld(_Z21mysql_execute_commandP3THDb+0xfc0)[0xd0b0a0]

/usr/sbin/mysqld(_Z11mysql_parseP3THDP12Parser_state+0x3a5)[0xd0f605]

/usr/sbin/mysqld(_Z16dispatch_commandP3THDPK8COM_DATA19enum_server_command+0x17a8)[0xd10e18]

/usr/sbin/mysqld(_Z10do_commandP3THD+0x194)[0xd11764]

/usr/sbin/mysqld(handle_connection+0x2bc)[0xde4d0c]

/usr/sbin/mysqld(pfs_spawn_thread+0x174)[0x1255534]

/lib64/libpthread.so.0[0x3ef2807aa1]

/lib64/libc.so.6(clone+0x6d)[0x3ef20e8bcd]

【分析过程】

从生成2个core file分析来看,有一些发现:

1、 报错发生在查询information_schema.processlist表的INFO字段

2、 值拷贝函数well_formed_copy_nchars,传入参数from_length的长度是65535,说明当时正在执行超长的SQL语句,INFO字段被截断了

第1个core.184694文件

发生异常的代码行,在验证字符串的2个字节时报错

第2个core.61979文件

发生异常的代码行,在获取字符串的第一个字节时报错

3、从字符集来看,from_cs是UTF8,to_cs也是UTF8,值拷贝时字符集从UTF8到UTF8

【结论】

目前可以确定的触发条件是DB在执行长度大于65535的SQL语句,同时执行information_schema.processlist的查询语句。

发生的两台服务器都是slave,可以推测可能是主库执行了包含二进制或大文本字段的insert、update、delete语句,在ROW模式下所有执行的语句记录到日志时,记录了每一行数据每个字段的修改。

这样比起master更容易出现超长的SQL语句,同时也提高了问题发生的概率。

将主从复制模式从ROW改为MIXED后,问题没有再现。

获取更多更及时的文章信息,请关注我的微信公众号

mysql crash 如何导出数据库_MySQL数据库crash的问题分析相关推荐

  1. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  2. mysql命令导出数据库_MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

  3. mysql命令导出方法_MySQL数据库导出方法大全(命令行+navicat)

    由于前段时间刚做完数据库课设,想导出数据库文件,在朋友的机器上跑一跑.由于我使用的是界面化的mysql,理所当然地认为可以在界面上找到导出数据库的操作选项,结果自己一个人摸索了半天,以失败告终.上网一 ...

  4. mysql数据库导出命令_MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

  5. mysql数据没有同步更新_MySQL数据库主从没有同步的两种解决方案

    MySQL数据库主从没有同步的两种解决方案 发布时间:2020-05-13 13:54:57 来源:亿速云 阅读:190 作者:三月 栏目:数据库 下文主要给大家带来MySQL数据库主从没有同步的两种 ...

  6. mysql增删改查大全_MySQL数据库增删改查SQL语句(2018整理集合大全)

    查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 crea ...

  7. mysql中数据如何备份_mysql数据库如何进行备份和恢复

    一.确保mysql开启了binlog日志功能 在/etc/my.cnf文件里的[mysqld]区块添加: #这个是存储的位置为mysql配置文件的位置 log-bin=mysql-bin 然后重启my ...

  8. mysql工资修改为空_mysql数据库技术1——基本的增删查改的sql语句

    1.数据库语言的分类 DDL:数据库定义语言 data Definition language 用于创建.修改.和删除数据库内的数据结构,如: 1:创建和删除数据库(CREATE DATABASE | ...

  9. mysql黑窗口常用命令_mysql数据库常用命令

    1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show ...

  10. 怎么用mysql存储系统数据库_mysql数据库之基本操作和存储引擎

    一.知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list ...

最新文章

  1. 利用计算机进行机械设计属于什么,计算机技术机械设计应用
  2. Docker快速验证tomcat单机多实例方案
  3. 智能安防“无芯片不AI”时代来临
  4. freemarker的${!}
  5. php动画注册表,老生常谈PHP面向对象之注册表模式
  6. 寄存器讲解--汇编(32位处理器)
  7. 友声电子秤设置软件_友声电子秤说明书/操作指南?(一)
  8. 一个风骚的C语言操作
  9. Python eval 函数 - Python零基础入门教程
  10. 我滴个乖乖,我复现了Spring的漏洞,害怕!
  11. 脚本不得关闭非脚本打开的窗口。_selenium自动化测试:2.录制和导出脚本
  12. 看MASTER围棋有感
  13. itextpdf生成pdf,html转pdf,pdf转图片
  14. C语言程序设计-跳马问题
  15. 【四二学堂】H5手机游戏-梅花易数一撮金(游戏开发系列微课之一)
  16. 如何计算阻力系数与升力系数【翻译】
  17. android实现课程表界面
  18. ASP.NET程序员常用的85个工具
  19. 安卓虚拟键盘_这是第一台安卓手机,当年谷歌和 HTC 靠它正面刚苹果
  20. 自媒体必备素材库,免费、商用,赶紧马住~

热门文章

  1. u8服务器销售订单保存失败,销售订单保存时出现这个提示什么问题?
  2. Android系统top指令cpu占用分析
  3. SELinux安全性配置
  4. 哈语驾考app的好处
  5. 毕业设计-基于微信小程序的词汇学习系统
  6. macOS: 使用新版plutil命令操作Plist文件更方便
  7. 电话机器人核心技术之NLP
  8. OO设计模式学习笔记(C#)
  9. 网课答案API 题库搜题查题系统
  10. php做五星评价系统,微信小程序之五星评价功能制作