Установка сервера MySQL и phpMyAdmin на Mac OS X

Есть множество способов установки MySQL на Mac OS X, я предпочел стандартную установку из дистрибутива, при любом из способов инсталирования MySQL может возникнуть ряд вопросов, на которые следует обратить внимание. Дополнительно рассмотрим установку веб-интерфейса phpMyAdmin для администрирования баз данных MySQL и модуля mcrypt.

Системные требования: Mac OS X 10.6.6 и MySQL 5.5.8. В MySQL версии ниже 5.5 не работает панель настроек (MySQL.prefPane).

Скачать MySQL для Mac OS X можно на официальном сайте. Переходим на страницу загрузки, в меню слева переходим по ссылке MySQL Community Server и в выпадающем списке выбираем платформу Mac OS X. Ищем версию совместимую с операционной системой и скачиваем. Монтируем образ и последовательно устанавливаем основной пакет MySQL, MySQLStartupItem.pkg (автозагрузка) и MySQL.prefPane (панель настроек позволяет запускать/останавливать сервер и добавить его в автозагрузку). Установка тривиальна, достаточно принять условия лицензионного соглашения и следовать инструкциям.

В начале необходимо переименовать папку, в которую установлен MySQL. Она находится в скрытой директории /usr/local/mysql-5.5.8-osx10.6-x86_64, если в системе уже был установлен MySQL, старую папку необходимо удалить или переименовать:

sudo mv /usr/local/mysql-5.5.8-osx10.6-x86_64 /usr/local/mysql

Для запуска и остановки сервера MySQL можно воспользоваться командами:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

Если сейчас попытаться запустить сервер MySQL, то он вернет ошибку:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Конфигурация сервера MySQL

Создадим файл конфигурации MySQL /etc/my.cnf (не создается автоматически):

sudo touch /etc/my.cnf
sudo nano /etc/my.cnf

и добавим в него следующие строки:


[mysqld]
basedir=/usr/local/mysql

Файл mysql.sock будет храниться папке /tmp, он создается автоматически при запуске сервера MySQL, поэтому необходимо дать пользователю _mysql права на чтение и запись в папку /tmp:

sudo chown _mysql:staff /tmp

Для запуска сервера MySQL необходимо перейти в Системные настройки > MySQL > Start MySQL Server или через командную строку, как упоминалось выше.

Для удобства работы с MySQL через командную строку добавим путь /usr/local/mysql/bin/ в переменную окружения PATH. В командной строке выполняем следующие инструкции:

nano ~/.profile

Добавляем строку:

export PATH=/usr/local/mysql/bin:$PATH

Сохраняем и перезапускаем терминал. Теперь можно пользоваться командами mysqladmin (администрирование) и mysql (работа с базами данных).

Для проверки работоспособности сервера введем в командной строчке mysql, если все инструкции выполнены верно, мы увидим приглашение MySQL:

mysql>

Настройка сервера закончена. Если требуется более тонкая конфигурация можно воспользоваться файлами настроек, которые находятся в папке /usr/local/mysql/support-files.

Возможно после перезапуска системы будет выводиться следующее предупреждение:
Не удалось запустить /Library/StartupItems/MySQLCOM, т.к. отсутствуют правильные настройки безопасности.
Предупреждение показывается, если в настройках указана автозагрузка сервера при старте системы, проверить можно следующим образом:

sudo nano /etc/hostconfig

Ищем строку со значением MYSQLCOM=-YES- и меняем ее на MYSQLCOM=-NO-, если автозагрузка не требуется (то же самое можно сделать через панель настроек).

Если автозагрузка сервера MySQL нужна и скрыть предупреждение, нужно ввести в следующую команду:

sudo chown -R root:wheel /Library/StartupItems/MySQLCOM

С более подробной установкой можно ознакомиться в файле ReadMe.txt, который находится на установочном образе диска MySQL.

Сделаем так, чтобы пользователь root мог соединиться с сервером, только указав пароль:

mysqladmin -u root password 'ваш_пароль'

Тестирование соединения с MySQL

Если в системе уже подключен PHP и сконфигурирован Apache, можно протестировать совместную работу с MySQL, но для начала может потребоваться внести небольшие изменения в конфигурацию PHP и указать путь к файлу mysql.sock в параметре mysql.default_socket. Сделать это можно с помощью символьной ссылки, переходим к командной строке и вводим следующую команду:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Простой PHP-скрипт для тестирования соединения с MySQL:

Установка и настройка phpMyAdmin

Для удобного администрирования баз данных MySQL установим веб-интерфейс phpMyAdmin.

Предварительно необходимо настроить веб-сервер Apache и PHP (см. Настройка веб-сервера Apache и PHP на Mac OS X).

Переходим на официальный сайт phpMyAdmin и скачиваем последнюю стабильную версию. Распаковываем архив и переименовываем папку в phpMyAdmin. Переместим в директорию с нашими сайтами, например /Users/andrey/Sites/phpMyAdmin/.

В корневом каталоге phpMyAdmin создадим файл конфигурации config.inc.php и поместим в него следующие строки:

Теперь можно перейти в веб-интерфейс phpMyAdmin (http://localhost/phpMyAdmin/). Для корректной работы phpMyAdmin потребуется установить модуль mcrypt, иначе вы увидите следующее предупреждение:

Cannot load mcrypt extension. Please check your PHP configuration.

Установка модуля mcrypt

Примечание: для установки модуля mcrypt потребуется наличие установленного Xcode.

Находясь в домашнем каталоге создадим временный каталог temp (будьте внимательнее с названием и расположением каталогов) и перейдем в него:

mkdir ~/temp
cd ~/temp

Скачиваем и распаковываем библиотеку libmcrypt:

curl -O http://surfnet.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

tar xzf libmcrypt-2.5.8.tar.gz

Переходим в папку libmcrypt-2.5.8:

cd libmcrypt-2.5.8

Выполняем следующие команды:

MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS=" -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS=" -arch x86_64 -g -Os -pipe" CXXFLAGS=" -arch x86_64 -g -Os -pipe" LDFLAGS=" -arch x86_64 -bind_at_load" ./configure --disable-dependency-tracking

make
sudo make install

Возвращаемся в папку temp:

cd ~/temp

Теперь скачаем PHP из исходников, распакуем и сконфигурируем PHP, переходим к командной строке и выполняем следующие инструкции:

curl -O http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-53.3.1/php-5.3.3.tar.bz2

tar xjf php-5.3.3.tar.bz2

cd ~/temp/php-5.3.3/ext/mcrypt

phpize

MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS=" -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS=" -arch x86_64 -g -Os -pipe" CXXFLAGS=" -arch x86_64 -g -Os -pipe" LDFLAGS="-arch x86_64 -bind_at_load" ./configure

make
sudo make install

Теперь необходимо перейти в файл конфигурации PHP и сообщить ему о новом модуле:

sudo nano /etc/php.ini

добавим строку:

extension=mcrypt.so

Перезапускаем веб-сервер Apache.

Файл mcrypt автоматически установился в каталог /usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so.

Ссылки по теме:
- Официальная документация по установке MySQL на Mac OS X
- Официальная документация по установке phpMyAdmin

Комментарии (18):

  1. Александр

    8 февраля 2011 в 22:28  #

    Попытался сделать так как Вы написали в этом посте и хотел бы добавить маленькое упущение на котором сам споткнулся:

    >> и добавим в него следующие строку:
    >>
    >> basedir=/usr/local/mysql

    Перед «basedir=/usr/local/mysql» строкой выше нужно добавить [mysqld] если такой директивы нет. Иначе эта переменная не переопределится.

  2. makegood

    8 февраля 2011 в 22:53  #

    Согласен, там можно еще и другие директивы добавить, но я потом пробовал удалять все лишнее и MySQL по прежнему работал, на чистой машине еще не успел протестировать.

  3. Max

    27 февраля 2011 в 22:01  #

    Сделал все как Вы написали, mcrypt так и не заработал. Может сможете подсказать в чем может быть подвох?

    И phpMyAdmin не принимает русские символы, выводит знаки вопроса (???).. хотя меню по русски..
    Может ли это быть изза не рабочего mcrypt?

  4. makegood

    27 февраля 2011 в 22:41  #

    Max, mcrypt по приведенному руководству должен ставиться, на работу phpMyAdmin он не влияет, попробуйте Sequel Pro, он намного удобнее чем phpMyAdmin.

  5. Max

    28 февраля 2011 в 00:13  #

    Спасибо, попробую… но все же хотелось бы разобраться с phpmyadmin, как его заставить работать с русскими символами?

  6. Max

    28 февраля 2011 в 02:02  #

    Поставил Sequel Pro, понравилась програмка, но в стандартной кодировке опять вопросы вместо русских символов, поменял кодировку на utf8-unicode, в Sequel Pro стало нормально, а когда вытягиваю в браузер, то опять знаки вопроса…((

  7. Max

    28 февраля 2011 в 02:27  #

    Все, разобрался, спс.
    Статейка кстати отличная

  8. ayrat

    12 марта 2011 в 11:36  #

    Спасибо, отличная статья — долго мучался с установкой mcrypt, пока не нашел вашу статью, а после прочитал про Sequel Pro и выходит зря ставил mcrypt )))

  9. Makc

    26 марта 2011 в 10:53  #

    ненад за меня отвечать плз )))
    для чего нужен mcrypt? и что такое Sequel Pro?

  10. Denis

    25 сентября 2011 в 00:18  #

    Сделал всё по инструкции, только сервер не запускается и пишет ошибку «Bad CPU type in executable». Как быть? Может я не ту версию сервера скачал?

    Устанавливал версию 5.5.

  11. Александр

    31 октября 2011 в 07:37  #

    «Монтируем образ и последовательно устанавливаем основной пакет MySQL, MySQLStartupItem.pkg (автозагрузка) и MySQL.prefPane (пане»

    Подскажите малограмотному откуда взять эти пакеты. После скачивания получил архив, развернул, получил директорий с массой встроенных…….

    если можно поподробнее…

  12. makegood

    31 октября 2011 в 08:27  #

    Александр, скачайте этот образ Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive

  13. Александр

    31 октября 2011 в 11:31  #

    Спасибо большое! Скачал, установил.

  14. Сергей

    25 марта 2012 в 13:24  #

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

  15. Сергей

    25 марта 2012 в 13:24  #

    заранее благодарен

  16. makegood

    25 марта 2012 в 21:31  #

    Сергей, UTF-8

  17. Serge

    21 июня 2012 в 01:11  #

    Не могу избавиться от
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
    после перезагрузки.
    уже и переустанавливал, и по 6 раз проходил все с самого начала — ни в какую не запускается mysql
    Может, у кого-то была такая же проблема?

  18. Максим

    5 декабря 2013 в 14:52  #

    Самая годная статья которую нашел. Ничего лишнего нет.