Установка MySQL в Leopard

    Я полагаю что многие заметили, что на офсайте MySQL отсутствует dmg пакет MySQL для Леопарда. Рисковать и «прогонять» тигровый пакет я не стал, а просто собрал свой БД сервер прямо из исходников. Делается это примерно так:

    Необходимо знать/уметь/иметь:
    • Вы знаете что такое консоль и как ей пользоваться (пусть на уровне чайника – этого будет достаточно)
    • Вы знакомы с основами *nix и не испытываете проблем с оргазмом от полупрозрачной консоли в MacOS X
    • У вас уже есть XCode, если его нет – скачайте и установите с офсайта XCode 3.0


    Итак, в дело, бейби, да!

    1. Надо добавить в наш PATH следующие пути (это в .bash_profile)
      export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
      

      Ну и естественно загрузить этот файл
      . ~/.bash_profile
      

    2. Делаем новую папку для сорсов
      cd ~
      mkdir src
      cd src
      

    3. Качаем и распаковываем сорсы MySQL
      curl -O http://mysql.he.net/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz
      tar xzvf mysql-5.0.45.tar.gz
      cd mysql-5.0.45
      

    4. Запускаем конфигуратор
      CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc \
      CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors \
      -fno-exceptions -fno-rtti" \
      ./configure --prefix=/usr/local/mysql \
      --with-extra-charsets=complex --enable-thread-safe-client \
      --enable-local-infile --enable-shared
      

    5. Компилируем
      make
      sudo make install
      

    6. Ну и инициализируем
      cd /usr/local/mysql
      sudo ./bin/mysql_install_db --user=mysql
      sudo chown -R mysql ./var
      


    Собственно – это всё. Сервер установлен и готов к работе. Однако, хабрачеловек == ленивый человек, а потому он де факто хочет чтобы сервер запускался (и выключался) сам при загрузке системы. Как этого достичь? Элементарно, Ватсон, мистер Джоббс и тут приготовил для настоящих джедаев специальные таблетки для входа в матрицу. Итак:
    1. Надо создать на десктопе файл com.mysql.mysqld.plist и зафигачить в него следующий текст:
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>KeepAlive</key>
          <true/>
          <key>Label</key>
          <string>com.mysql.mysqld</string>
          <key>Program</key>
          <string>/usr/local/mysql/bin/mysqld_safe</string>
          <key>RunAtLoad</key>
          <true/>
          <key>UserName</key>
          <string>mysql</string>
          <key>WorkingDirectory</key>
          <string>/usr/local/mysql</string>
      </dict>
      </plist>
      

    2. Далее этот файлик надо разметить в правильном месте
      sudo mv ~/Desktop/com.mysql.mysqld.plist /Library/LaunchDaemons
      sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
      

    3. Ну и зарегистрировать в системе:
      sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
      

    4. Чисто теоретически всё сейчас обстоит пучком и сервер уже запущен и ждёт чтобы его насиловал честный разработчик, проверить это можно простой командой:
      mysql -uroot
      


    Вот, собственно, и всё :)
    Поделиться публикацией

    Похожие публикации

    Комментарии 6

      –1
      это стандартная установка из исходников, ничего необычного. Наверняка на сайте MySQL всё это расписано
        0
        разве что нет а) специфики автозапуска в Леопарде и б) нет учёта «путей» в Лео
        0
        поставил из dmg - все нормально :-)
          0
          буду знать :)
          +1
          Заранее извиняюсь, я не большой знаток русского языка, но мне показалось что слово "Прерогативы" здесь использовано неверно. И кажется толковый словарь живого великорусского языка Владимира Даля со мной согласен:
          "ПРЕРОГАТИВА ж. франц. преимущество, особое право, первенство."

          А здесь видимо имелось ввиду: "Необходимые инструменты и навыки"
            0
            каюсь :) сейчас исправлю!

            p.s. даёт о себе знать постоянное использование английского, где в тех-заданиях слово «prerogatives» при перечислении необходимых навыков встречается довольно часто.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое