Для MySQL необходимо наличие libc
версии 5.4.12 или выше. Известно, что
MySQL работает с libc
5.4.46, а также с glibc
версии 2.0.6 и более новыми.
Существуют некоторые проблемы с glibc
из пакетов в RedHat, поэтому в
случае возникновения проблем следует проверить, нет ли обновлений данной
версии! Известно, что glibc
из RPM версий 2.0.7-19 и 2.0.7-29
работоспособны.
Если вы используете Red Hat 8.0 или новую glibc 2.2.x вам следует запускать
mysqld с опцией --thread-stack=192K
. Если вы этого не сделаете, то
mysqld будет умирать в gethostbyaddr()
потому что новая glibc требует >
128Кбайт памяти стека для этого вызова. Такой размер стека установлен по
умолчанию в MySQL 4.0.10 и более новых.
При использовании для сборки MySQL gcc 3.0 и выше библиотеку libstdc++v3
необходимо установить до сборки; если вы не сделаете этого, то получите
сообщение об отсутствии символа __cxa_pure_virtual
во время линкования!
На некоторых старых версиях Linux configure
может приводить к ошибкам
такого типа:
Syntax error in sched.h. Change _P to __P in the /usr/include/sched.h file. See the Installation chapter in the Reference Manual.
Сделайте именно то, о чем говорится в сообщении об ошибке - добавьте дополнительный символ подчеркивания к имени макроса _P
, которое имеет
только один символ подчеркивания в начале, и попробуйте выполнить те же
действия еще раз.
При компиляции могут выводиться некоторые предупреждения. Ниже приведены те из них, которые можно проигнорировать:
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'
mysql.server
находится либо в каталоге share/mysql
каталога инсталляции MySQL, либо в каталоге support-files
каталога дерева исходных текстов
MySQL.
Возникновение следующей ошибки при линковании mysqld
говорит о
некорректной установке libg++.a
:
/usr/lib/libc.a(putc.o): In function `_IO_putc': putc.o(.text+0x0): multiple definition of `_IO_putc'
Использования libg++.a
можно избежать путем запуска configure
следующим
образом:
shell> CXX=gcc ./configure