2.12.1.5. Linux x86 Notes
MySQL requires libc
5.4.12 or newer. It is
known to work with libc
5.4.46.
glibc
2.0.6 and later should also work.
There have been some problems with the
glibc
RPMs from Red Hat, so if you have
problems, check whether there are any updates. The
glibc
2.0.7-19 and 2.0.7-29 RPMs are known
to work.
If you are using Red Hat 8.0 or a new glibc
2.2.x library, you may see mysqld die in
gethostbyaddr()
. This happens because the
new glibc
library requires a stack size
greater than 128KB for this call. To fix the problem, start
mysqld with the
--thread-stack=192K
option. (Use -O
thread_stack=192K
before MySQL 4.) This stack size is
the default on MySQL 4.0.10 and above, so you should not see
the problem.
If you are using gcc 3.0 and above to
compile MySQL, you must install the
libstdc++v3
library before compiling MySQL;
if you don't do this, you get an error about a missing
__cxa_pure_virtual
symbol during linking.
On some older Linux distributions,
configure may produce an error like this:
Syntax error in sched.h. Change _P to __P in the
/usr/include/sched.h file.
See the Installation chapter in the Reference Manual.
Just do what the error message says. Add an extra underscore
to the _P
macro name that has only one
underscore, and then try again.
You may get some warnings when compiling. Those shown here can
be ignored:
mysqld.cc -o objs-thread/mysqld.o
mysqld.cc: In function `void init_signals()':
mysqld.cc:315: warning: assignment of negative value `-1' to
`long unsigned int'
mysqld.cc: In function `void * signal_hand(void *)':
mysqld.cc:346: warning: assignment of negative value `-1' to
`long unsigned int'
If mysqld always dumps core when it starts,
the problem may be that you have an old
/lib/libc.a
. Try renaming it, and then
remove sql/mysqld
and do a new
make install and try again. This problem
has been reported on some Slackware installations.
If you get the following error when linking
mysqld, it means that your
libg++.a
is not installed correctly:
/usr/lib/libc.a(putc.o): In function `_IO_putc':
putc.o(.text+0x0): multiple definition of `_IO_putc'
You can avoid using libg++.a
by running
configure like this:
shell> CXX=gcc ./configure