技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 获取 MySQL 崩溃时的 core file

获取 MySQL 崩溃时的 core file

浏览:1434次  出处信息

   对于一般进程,要让进程崩溃时能生成 core file 用于调试,只需要设置 rlimit 的 core file size > 0 即可。比如,用在 ulimit -c unlimited 时启动程序。

   对 MySQL 来说,由于 core file 中会包含表空间的数据,所以默认情况下为了安全,mysqld 捕获了 SEGV 等信号,崩溃时并不会生成 core file,需要在 my.cnf 或启动参数中加上 core-file。

   但是即使做到了以上两点,在 mysqld crash 时还是可能无法 core dump。还有一些系统参数会影响 core dump。以下脚本可供参考:

echo 2 >/proc/sys/fs/suid_dumpable
chmod 0777 /var/crash
echo /var/crash/core> /proc/sys/kernel/core_pattern
echo 1 >/proc/sys/kernel/core_uses_pid

   由于 mysql 通常会以 suid 方式启动,所以需要打开 suid_dumpable 。对于 core_pattern,最好指定一个保证可写的绝对路径。

   之后,就可以用 kill -SEGV 让 mysqld 崩溃,测试一下能不能正常产生 core file 了。

建议继续学习:

  1. 深入理解Nginx之调试优化技巧    (阅读:6795)
  2. 又一个PHP低概率Core的分析(PHP内存管理)    (阅读:3331)
  3. CSS让你的IE浏览器崩溃    (阅读:2910)
  4. CSS让你的IE浏览器崩溃(Crash your IE)    (阅读:2614)
  5. 如何调试PHP的Core之获取基本信息    (阅读:2405)
  6. 怎样用core文件调试你的linux程序?    (阅读:2570)
  7. PHP stream未能及时清理现场导致Core的bug    (阅读:2303)
  8. 更简单的重现PHP Core的调用栈    (阅读:2085)
  9. iOS安全–不同平台的崩溃收集    (阅读:1159)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1