поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    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.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100