The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Базы данных, SQL" / Оглавление документа

2.3 Установка исходников MySQL

Прежде, чем Вы будете ставить исходники, проверьте, может быть Вас устроит двоичный дистрибутив. Дело в том, что авторы пакета сильно постарались, чтобы их двоичные дистрибутивы для разных платформ были сформированы с самыми лучшими возможными параметрами.

Вы нуждаетесь в следующих инструментальных средствах, чтобы сформировать и установить MySQL из исходников:

Если Вы используете недавнюю версию gcc, проверьте использование опции -fno-exceptions. ОЧЕНЬ ВАЖНО, чтобы Вы использовали ее. Иначе Вы можете компилировать двоичный код, который беспорядочно терпит крах. Я также рекомендую, чтобы Вы использовали -felide-contructors и -fno-rtti наряду с -fno-exceptions. Если сомневаетесь, сделайте следующее:

CFLAGS="-O3" CXX=gcc
CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"
./configure --prefix=/usr/local/mysql --enable-assembler
            --with-mysqld-ldflags=-all-static

На большинстве систем это даст Вам быстрый и устойчивый двоичный код.

Если Вы сталкиваетесь с проблемами, ПОЖАЛУЙСТА ВСЕГДА ИСПОЛЬЗУЙТЕ mysqlbug при регистрации вопросов в mysql@lists.mysql.com. Даже если проблема не является ошибкой, mysqlbug собирает информацию системы, которая поможет другим решить Вашу проблему. Не используя mysqlbug,Вы уменьшаете вероятность получения решения для Вашей проблемы! Вы найдете mysqlbug в каталоге scripts после распаковки дистрибутива. Подробности в разделе "1.4.1 Как сообщать об ошибках и проблемах ".

2.3.1 Краткий обзор установки

Базисные команды, которые Вы должны выполнить, чтобы установить исходники MySQL, выглядят так:

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root  /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &

Если Вы хотите иметь поддержку для таблиц InnoDB, Вы должны отредактировать файл /etc/my.cnf и удалить символ # перед параметрами, которые начинаются с innodb_.... Подробности в разделе "4.1.2 Файл опций my.cnf" и в разделе "7.6.2 Параметры запуска InnoDB ".

Вы можете добавлять новых пользователей, используя скрипт bin/mysql_setpermission, если Вы устанавливаете Perl-модули DBI и Msql-Mysql-modules.

Чтобы устанавливать исходники, выполните приведенные ниже действия, а затем перейдите к разделу "2.4 Послеустановочная настройка и тестирование" для инициализации пост-установки и тестирования:

  1. Выберите каталог, в который Вы хотите распаковать дистрибутив, и перейдите в него.
  2. Получите дистрибутивный файл с одного из сайтов, перечисленных в разделе "2.2.1 Как получить MySQL".
  3. Если Вы заинтересованы использованием таблиц Berkeley DB с MySQL, Вы должны получить исправленную версию исходного текста Berkeley DB. Пожалуйста, прочитайте главу по таблицам Berkeley DB перед продолжением установки. Подробности в разделе "7.5 Таблицы BDB или Berkeley_DB".
  4. Добавьте пользователя и группу, от имени которых будете запускать mysqld:
    shell> groupadd mysql
    shell> useradd -g mysql mysql
    
    Эти команды добавляют группу mysql и пользователя mysql. Синтаксис для useradd и groupadd может немного отличаться в различных версиях Unix. Они также могут быть названы adduser и addgroup.
  5. Распакуйте дистрибутив в текущий каталог:
    shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -
    
    Эта команда создает каталог, именованный mysql-VERSION. Дистрибутивы представляют собой сжатые архивы с именами вроде mysql-VERSION.tar.gz , где VERSION определяет версию дистрибутива.
  6. Перейдите в верхний каталог распакованного дистрибутива:
    shell> cd mysql-VERSION
    
    Обратите внимание, что в настоящее время Вы должны конфигурировать и формировать MySQL из этого каталога. Вы не можете формировать его, находясь в каком-то ином каталоге.
  7. Конфигурируйте и компилируйте все:
    shell> ./configure --prefix=/usr/local/mysql
    shell> make
    
    Когда Вы выполняете configure, Вы можете определять некоторые дополнительные параметры. Выполните ./configure --help, чтобы получить перечень опций. В разделе " 2.3.3 Типичные опции configure" обсуждаются некоторые из наиболее полезных параметров. Если происходит сбой скрипта configure, и Вы собираетесь посылать сообщение об этом на mysql@lists.mysql.com, чтобы попросить о помощи, пожалуйста, включите в письмо строки из файла config.log, которые, как Вы думаете, могут помочь решить проблему. Также включите последнюю тройку строк из вывода configure, если configure прерывается. Регистрируйте отчет ошибки, используя скрипт mysqlbug. Подробности в разделе "1.4.1 Как сообщать об ошибках и проблемах ". Если компиляция не проходит нормально, обратитесь к разделу "2.3.5 Проблемы компиляции".
  8. Установите готовый пакет:
    shell> make install
    
    Скорее всего, Вы должны выполнить эту команду как root.
  9. Создайте таблицы предоставления привилегий MySQL (необходимо только, если Вы не устанавливали MySQL прежде):
    shell> scripts/mysql_install_db
    
    Обратите внимание, что версии MySQL старше, чем Version 3.22.10, запускали сервер MySQL, когда Вы выполняли скрипт mysql_install_db. Это больше не так!
  10. Измените принадлежность бинарных файлов на root и задайте в качестве владельца каталога данных пользователя, от имени которого будет работать сервер mysqld:
    shell> chown -R root  /usr/local/mysql
    shell> chown -R mysql /usr/local/mysql/var
    shell> chgrp -R mysql /usr/local/mysql
    
    Первая команда изменяет атрибут владельца файлов (owner) на пользователя root, второй изменяет атрибут владельца каталога данных на пользователя mysql, а третий меняет атрибут группы владельца каталога данных (group) на группу mysql.
  11. Если Вы хотите, чтобы MySQL запустился автоматически, когда Вы загружаете Вашу машину, Вы можете копировать support-files/mysql.server в место, где Ваша система имеет файлы запуска. Большее количество информации может быть найдено непосредственно в скрипте support-files/mysql.server и в разделе "2.4.3 Автозапуск и завершение MySQL ".

После того, как все было установлено, Вы должны инициализировать и проверить Ваш дистрибутив:

shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &

Если эта команда немедленно валится с диагностикой mysqld daemon ended, Вы можете найти некоторую информацию в файле mysql-data-directory/'hostname'.err. Вероятная причина в том, что Вы уже имеете запущенный сервер mysqld. Подробности в разделе "4.1.4 Запуск нескольких серверов MySQL на одной машине".

2.3.2 Применение патчей (заплаток)

Иногда заплаты появляются в списке рассылки или помещаются в области заплат сайта MySQL ( http://www.mysql.com/Downloads/Patches).

Чтобы применить заплату из списка рассылки, сохраните сообщение, в котором пришла заплата, перейдите в верхний каталог Вашего дерева исходников MySQL и введите оттуда команды:

shell> patch -p1 < patch-file-name
shell> rm config.cache
shell> make clean

Заплаты с FTP-сайта распространяются как простые текстовые файлы или как файлы, сжатые gzip. Примените простую заплату как показано выше для заплат из списка рассылки. Чтобы применить сжатую заплату, из верхнего каталога Вашего дерева исходников MySQL надо ввести следующее:

shell> gunzip < patch-file-name.gz | patch -p1
shell> rm config.cache
shell> make clean

После применения патча, выполните команды по настройке, компиляции и установке сервера. После make install перезапустите сервер.

Вы должны завершить работу сервера перед выполнением make install. Для этого используйте команду mysqladmin shutdown. Некоторые системы не позволяют Вам устанавливать новую версию программы, если она заменяет собой ту версию, которая в настоящее время выполняется.

2.3.3 Типичные опции configure

Скрипт configure дает Вам хороший контроль над тем, как Вы конфигурируете свой дистрибутив MySQL. Чтобы получить список опций, configure, выполните команду:

shell> ./configure --help

Некоторые из наиболее часто используемых параметров configure подробно описаны ниже:

2.3.4 Установка из дерева исходников для разработки

ПРЕДОСТЕРЕЖЕНИЕ: Вы должны читать этот раздел только, если Вы заинтересованы в помощи авторам и отладке кода. Если Вы только хотите получить MySQL и использовать его на своей системе, Вы должны использовать стандартный дистрибутив (двоичный или с исходниками).

Чтобы получить самое современное дерево источников разработок, используйте эти команды:

  1. Скачайте BitKeeper с сайта http://www.bitmover.com/cgi-bin/download.cgi. Вам нужна версия Bitkeeper 2.0 или более новая для доступа к репозитарию.
  2. Следуйте командам, чтобы установить его.
  3. Когда BitKeeper установлен, надо использовать эту команду, если Вы хотите получить код MySQL 3.23:
    shell> bk clone bk://work.mysql.com:7000 mysql
    

    Для получения кода версии 4.0, используйте такую команду:

    shell> bk clone bk://work.mysql.com:7001 mysql-4.0
    

    Начальная загрузка исходного дерева может требовать времени в зависимости от быстродействия Вашего подключения, будьте терпеливы.

  4. Вы будете нуждаться в GNU autoconf, automake, libtool и макропроцессоре m4, чтобы выполнить следующий набор команд. Если Вы получаете некоторую странную ошибку в течение этой стадии, проверьте, что Вы действительно имеете установленный libtool!
    shell> cd mysql
    shell> bk -r edit
    shell> aclocal; autoheader; autoconf;  automake;
    shell> ./configure  # Add your favorite options here
    shell> make
    

    Совокупность стандартных скриптов выбора конфигурации размещена в подкаталоге BUILD. В самом простом случае Вы можете использовать BUILD/compile-pentium-debug. Чтобы компилировать на различной архитектуре, измените скрипт, убрав из него параметры, которые являются специфическими для Pentium.

  5. Когда формирование выполнено, запустите make install. Будьте внимательным с этим на промышленной машине: команда может записывать поверх Вашей работающей установки. Если Вы имеете другую установку MySQL, задайте для ./configure другие значения для параметров prefix, tcp-port и unix-socket-path.
  6. Если Вы дошли до стадии make, но дистрибутив не компилируется, пожалуйста, сообщите об этом на bugs@lists.mysql.com. Если Вы установили последние версии требуемых инструментальных средств GNU, и они разрушаются при попытке обработать наши файлы конфигурации, пожалуйста, сообщите об этом. Однако, если Вы выполняете aclocal и получаете ошибку command not found или подобную проблему, не сообщайте об этом. Вместо этого, удостоверьтесь, что все необходимые инструментальные средства установлены, и что Ваша переменная PATH установлена правильно, так что Ваша оболочка может находить их.
  7. После того, как начальная операция bk clone получила исходное дерево, Вы должны периодически выполнять bk pull, чтобы получать модификации.
  8. Вы можете исследовать хронологию изменений дерева со всеми diffs, используя bk sccstool. Если Вы видите некоторый забавный diffs или код, относительно которого есть вопросы, без колебаний посылайте запрос на internals@lists.mysql.com. Также, если Вы думаете, что Вы имеете лучшую идею относительно того, как что-то сделать, посылайте e-mail на тот же самый адрес с патчем. bk diffs произведет заплату для Вас после того, как Вы сделали изменения для исходника. Если Вы не имеете времени на кодирование Вашей идеи, только пошлите ее описание.
  9. BitKeeper имеет хорошую утилиту справки, к которой Вы можете обращаться через bk helptool.

2.3.5 Проблемы при компиляции?

Все программы MySQL компилируются чисто, без предупреждений, на Solaris с применением gcc. На других системах предупреждения могут происходить из-за различий в системе и включаемых файлов. В разделе "2.3.6 Замечания по MIT-pthreads" есть подробности для предупреждений, которые могут происходить при использовании MIT-pthreads. Для других проблем проверьте список ниже.

Решение для многих проблем включает повторное конфигурирование. Если Вы должны реконфигурировать пакет, примите во внимание следующее:

Чтобы избавиться от старой информации о конфигурации или объектных файлов, выполните эти команды перед повторным запуском configure:

shell> rm config.cache
shell> make clean

Альтернативно, Вы можете выполнять make distclean.

Список ниже описывает некоторые из проблем при компиляции MySQL, которые были найдены наиболее часто:

2.3.6 Замечания по MIT-pthreads

Этот раздел описывает некоторые из проблем в использовании MIT-pthreads.

Обратите внимание, что в Linux Вы не должны использовать MIT-pthreads, а установить вместо него LinuxThreads! Подробности в разделе "2.6.1 Замечания по Linux (все версии Linux)".

Если Ваша система не обеспечивает местную поддержку потоков, Вы должны формировать MySQL с применением пакета MIT-pthreads. Это включает старые системы FreeBSD, SunOS 4.x, Solaris 2.4 и ранее и некоторые другие. Подробности в разделе "2.2.2 Операционные системы, поддерживаемые MySQL".




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру