2.6.1.1 Примечания к бинарным дистрибутивам Linux
Для работы MySQL необходим Linux версии не ниже 2.0.
Предупреждение:
По данным, полученным нами от некоторых пользователей
MySQL, на Linux с ядром 2.2.14 имеются серьезные проблемы с устойчивостью
работы MySQL. Если вы используете это ядро, необходимо обновить его до
версии 2.2.19 или выше, либо до ядра версии 2.4. Аргументы в пользу 2.4
становятся еще более весомыми при использовании многопроцессорной системы,
поскольку переход на эту версию ядра приводит к заметному увеличению
скорости.
Как правило, бинарный дистрибутив линкуется с опцией -static
, а это
значит, что обычно нет необходимости беспокоиться о том, какая версия
системных библиотек у вас установлена. Не требуется также устанавливать
LinuxThreads. Размер программы, слинкованной с опцией -static
, обычно
больше в сравнении с версией, собранной динамически, однако скорость
работы у нее выше (3-5%). Существует, однако, одна проблема. Она
заключается в том, что со статически слинкованными программами невозможно
использовать определяемые пользователем функции (user-definable function,
UDF). Если вы собираетесь писать или использовать UDF'ы (это информация,
касающаяся только программистов на C или C++), вам следует собственноручно
собрать MySQL с использованием динамического линкования.
При использовании систем, базирующихся на libc
(в отличие от
glibc2
-систем), могут возникать некоторые проблемы с разрешением имен
удаленных компьютеров и использованием getpwnam()
с бинарной версией (это
происходит из-за того, что, к сожалению, glibc
зависит от некоторых
внешних библиотек при разрешении имен и использовании getpwent()
, даже при
сборке с опцией -static
). В таком случае при запуске mysql_install_db
возможно появление следующего сообщения об ошибке:
Sorry, the host 'xxxx' could not be looked up
Или же - при запуске mysqld
с опцией --user
- сообщение об ошибке может
быть таким:
getpwnam: No such file or directory
Эту проблему можно решить одним из следующих способов:
-
загрузить и установить дистрибутив MySQL с исходными текстами (RPM или
дистрибутив
tar.gz
).
-
Запустить
mysql_install_db --force
, чтобы избежать проверки
resolveip
в mysql_install_db
. Оборотной стороной такого подхода
является невозможность работать с именами машин в таблицах прав
доступа - вместо них следует должны использовать IP-адреса (за
исключением localhost
). Если у вас старая поставка MySQL,
которая не поддерживает ключ --force
, то нужно просто удалить в редакторе
проверку resolveip
из mysql_install
.
-
Запускать
mysqld
с помощью команды su вместо использования опции --user
.
RPM и бинарные файлы MySQL для Linux на архитектуре Intel оптимизированы
для достижения наибольшей возможной скорости работы. Мы всегда стараемся
использовать компиляторы, которые дают наиболее быстрый и устойчивый код.
Поддержка Perl в MySQL требует Perl версии не ниже 5.004_03.
На некоторых Linux версии 2.2 при попытке создать большое количество новых
соединений с сервером mysqld через TCP/IP вы можете получить сообщение об
ошибке Resource temporarily unavailable
(Ресурс временно недоступен).
Проблема заключается в задержке между закрытием сокета TCP/IP и реальным
его освобождением системой в Linux. Поскольку существует ограниченное
количество областей для поддержки TCP/IP, вы получите вышеназванную
ошибку, если попытаетесь создать слишком много новых соединений TCP/IP на
протяжении короткого отрезка времени (нечто подобное происходит при
запуске теста на производительность MySQL `test-connect' поверх TCP/IP).
Об этой проблеме мы несколько раз сообщали в различные списки рассылки по
Linux, однако удачного решения получить не удалось.
Единственное известное 'решение' данной проблемы заключается в том, что
ваши клиенты должны работать с постоянными соединениями или использовать
сокеты (в случае, если клиентская и серверная части находятся на одной
машине). Остается надеяться, что эта проблема будет решена в ядре Linux
2.4.