четверг, 3 мая 2007 г.

HOWTO: Инсталяция MySQL из исходников

  1. Подготовка

    Скачать исходники MySQL с сайта разработчикой
    wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.37.tar.gz/from/http://mysql.bst.lt/
    tar xzvf mysql-5.0.37.tar.gz
    sudo mv mysql-5.0.37 /usr/local/src/mysql-5.0.37
    cd /usr/local/src/mysql-5.0.37/

    Установить приложения необходимые для компиляции
    sudo apt-get install build-essential g++ g++-4.1
    sudo apt-get install libstdc++6-4.1-dev libncurses5-dev

  2. Оптимизация компилятора

    Для быстрой работы MySQL сервера необходими настроить переменные окружения перед компиляцией.

    Если тип процессора известен, то укажите его параметры CHOST, CFLAGS, CXXFLAGS, в противном случае воспользуйтесь настройками Generic.

    Athlon-tbird XP (AMD)
    export CHOST="i686-pc-linux-gnu"
    export CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse"
    -fomit-frame-pointer -msse -mmmx -mfpmath=sse"
    export CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse -felide-constructors -fno-exceptions -fno-rtti"
    export CXX=gcc

    Pentium 4 (Intel)
    export CHOST="i686-pc-linux-gnu"
    export CFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse"
    export CXXFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -msse -mmmx -mfpmath=sse -felide-constructors -fno-exceptions -fno-rtti"
    export CXX=gcc

    Generic
    export CHOST="i686-pc-linux-gnu"
    export CFLAGS="-mcpu=i686 -march=i686 -O3 -pipe -fomit-frame-pointer"
    export CXX=gcc

  3. Конфигурация и сборка пакета

    Вы можете добавить или удалить опции компиляции MySQL. Подробности на сайте http://dev.mysql.com/doc/refman/5.0/en/
    ./configure \
    --prefix=/usr/local/mysql \
    --with-mysqld-user=mysql \
    --without-debug \
    --without-docs \
    --without-bench \
    --with-client-ldflags=-all-static \
    --with-mysqld-ldflags=-all-static \
    --enable-shared \
    --enable-static \
    --with-berkeley-db \
    --with-innodb \
    --with-gemini \
    --localstatedir=/usr/local/mysql/data \
    --with-extra-charsets=none \
    --enable-assembler \
    --with-unix-socket-path=/var/run/mysqld/mysqld.sock

    make
    sudo make install

    Вы установили MySQL сервер в /usr/local/mysql, данные будут храниться в /usr/local/mysql/data, и полной путь к сокету будет следующим /var/run/mysqld/mysqld.sock.
    Не рекомендую изменять путь к сокету, так как многие программы работаюшие с сокетами ожидают найти сокет именно по этому адресу.

    Теперь создайте файл конфигурации my.cnf
    sudo cp support-files/my-medium.cnf /etc/my.cnf

    Служебные таблицы. Снова консоль
    sudo /usr/local/mysql/bin/mysql_install_db --user=mysql

    И наконец, смените привелегии файлов и каталогов
    sudo chown -R root /usr/local/mysql
    sudo chown -R mysql /usr/local/mysql/var
    sudo chgrp -R mysql /usr/local/mysql

  4. Тестирование

    Пробный тестовый запуск системы.
    /usr/local/mysql/bin/mysqld_safe &
    /usr/local/mysql/bin/mysql

  5. Настройка автоматического старта

    Пропишите MySQL в стартовых сервисах
    sudo cp support-files/mysql.server /etc/init.d/mysql
    sudo chmod +x /etc/init.d/mysql
    sudo update-rc.d mysql defaults

  6. Администрирование MySQL

    Для администрирования MySQL необходимо создать символьные линки в каталоге /usr/local/bin для основных команд, например, mysql, mysqldump, mysqladmin. Консоль:
    cd /usr/local/bin
    sudo ln -s usr/local/mysql/bin/mysql
    sudo ln -s usr/local/mysql/bin/mysqladmin
    sudo ln -s usr/local/mysql/bin/mysqldump

1 comments:

Glukas комментирует...

Для amd64

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -msse3 -O2 -pipe"
CXXFLAGS="${CFLAGS}"