西安数据恢复中心
首页 | 联系方式 | 加入收藏 | 设为首页

服务项目

站内搜索

联系方式

办公地址:西安市未央区未央路130号(市图书馆旁)
联系电话: 18091827330

当前位置:主页 > 硬盘维修资料 > 正文

针对调试编译MySQL

编辑::西安硬盘维修中心-硬盘修复厂家-移动硬盘维修-西安硬盘修复公司  更新时间:2019-10-03  字号:
摘要:西安唯美数据恢复中心 如果你遇到一些非常明确的问题,你可以总是试着调试MySQL。要调试MySQL,你必须用--with-debug或--with-debug=full选项来配置MySQL。你可以检查MySQL是否是通过 mysqld --

西安唯美数据恢复中心
如果你遇到一些非常明确的问题,你可以总是试着调试MySQL。要调试MySQL,你必须用--with-debug或--with-debug=full选项来配置MySQL。你可以检查MySQL是否是通过mysqld --help来和调试一起编译的。如果--debug标记和选项一起被列出了,你就可以调试了。在这种情况mysqladmin ver下把mysqld版本列成mysql ... --debug

如果你使用gccegcs,推荐的configure 行如下:

CC=gcc CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors \
   -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql \
   --with-debug --with-extra-charsets=complex

这避免了libstdc++库和C++异常(很多编译器在线程代码里有C++异常的问题)的问题,并编译了一个支持所有字符集的MySQL版本。

如果你怀疑内存溢出错误,你可以用--with-debug=full来配置MySQL,这会安装一个内存分配(SAFEMALLOC)检查器。可是,运行SAFEMALLOC是非常慢的,所以如果你遇到性能上的问题,你应该 用--skip-safemalloc选项启动mysqld。这样禁止掉对调用malloc()和free()的内存检查。

当你用--with-debug编译mysqld时,如果它不再崩溃,你大致已经在MySQL内找到一个编译器缺陷或计时缺陷。这种情况下,你可以试着把-g加到上面的CFLAGS和CXXFLAGS变量,并且不使用--with-debug。如果mysqld失败,你至少可以gdb用附着上它或使用核心文件上的gdb去找出发生什么问题。

当你为调试配置MySQL时,你就自动允许许多额外的监视mysqld健康的安全检查函数。如果它们发现一些“不期望”的事,会写一个条目到stderr,safe_mysqld指引这个stderr到错误日志!这也意味着如果MySQL发生什么意外的问题,并且你正使用一个源文件发布版本,那么你要做的第一件事就是去为调试配置MySQL!(第二件事是发邮件到MySQL邮件列表请求帮助)。

上一篇:MySQL服务器错误代码和消息

下一篇:线程软件包之间的差异

分享到: