例如,我将删除一个表中使用innodb引擎的一行,以及如何在控制台上输出调试信息,如DBUG_ENTER。
发布于 2014-12-15 21:11:53
这些是在编译时展开的宏。要使用它们,您可能需要在调试模式下重新编译MySQL。在正态分布中,它们什么也不做。
但是,为什么首先要对mysql服务器进行调试呢?
发布于 2015-07-03 13:45:10
简而言之,正如@geert3所述,使用debug info重新编译,并使用debug标志运行服务器。
Ubuntu中的MySQL 5.6。
您需要从源代码获取mysqld,并使用调试信息:cmake -DWITH_DEBUG=1进行编译。您可能希望添加选项-DCMAKE_INSTALL_PREFIX=/your/test/dir以不破坏MySQL原始安装。然后,像往常一样,使用make; make install;。
手动启动测试服务器。在Ubuntu中:调试(注意添加了-- export PATH=/your/test/dir/bin:$PATH; export LD_LIBRARY_PATH=/your/test/dir/lib:$LD_LIBRARY_PATH; sudo /your/test/dir/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --debug 标志)。
如果您不确定如何在您的特定平台上启动它,请检查安装的服务管理器如何启动它。在Ubuntu中,在设置PATH和LD_LIBRARY_PATH变量之前:sudo service mysql start; ps -ef|fgrep mysqld。
就这样。DBUG_ENTER不会将跟踪发送到控制台。它们被发送到/tmp/mysqld.trace。
要停止您的测试服务器,在Ubuntu中,找到测试服务器PID信号并向它发送术语sudo cat /var/run/mysqld/mysqld.pid kill <your-server-PID>。
https://stackoverflow.com/questions/27484768
复制相似问题