If you have some very specific problem, you can always try to
          debug MySQL. To do this you must configure MySQL with the
          --with-debug or the
          --with-debug=full option.
          You can check whether MySQL was compiled with debugging by
          doing: mysqld --help. If the
          --debug flag is listed with the
          options then you have debugging enabled. mysqladmin
          ver also lists the mysqld version
          as mysql ... --debug in this case.
        
If you are using gcc, the recommended configure line is:
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
          This avoids problems with the libstdc++
          library and with C++ exceptions (many compilers have problems
          with C++ exceptions in threaded code) and compile a MySQL
          version with support for all character sets.
        
          If you suspect a memory overrun error, you can configure MySQL
          with --with-debug=full,
          which installs a memory allocation
          (SAFEMALLOC) checker. However, running with
          SAFEMALLOC is quite slow, so if you get
          performance problems you should start
          mysqld with the
          --skip-safemalloc option. This
          disables the memory overrun checks for each call to
          malloc() and free().
        
          If mysqld stops crashing when you compile
          it with --with-debug, you
          probably have found a compiler bug or a timing bug within
          MySQL. In this case, you can try to add -g to
          the CFLAGS and CXXFLAGS
          variables above and not use
          --with-debug. If
          mysqld dies, you can at least attach to it
          with gdb or use gdb on
          the core file to find out what happened.
        
          When you configure MySQL for debugging you automatically
          enable a lot of extra safety check functions that monitor the
          health of mysqld. If they find something
          “unexpected,” an entry is written to
          stderr, which
          mysqld_safe directs to the error log! This
          also means that if you are having some unexpected problems
          with MySQL and are using a source distribution, the first
          thing you should do is to configure MySQL for debugging! (The
          second thing is to send mail to a MySQL mailing list and ask
          for help. See Section 1.7.1, “MySQL Mailing Lists”. If you believe
          that you have found a bug, please use the instructions at
          Section 1.8, “How to Report Bugs or Problems”.
        
          In the Windows MySQL distribution,
          mysqld.exe is by default compiled with
          support for trace files.
        


User Comments
Add your own comment.