Настройте MAMP для использования mariadb - PullRequest
4 голосов
/ 23 июня 2011

Я успешно установил mariadb, но MAMP продолжает использовать копию mysql, расположенную в его папке bin; а именно:

/ Applications / MAMP / Library / бен / MySQL

Как мне заставить MAMP использовать mariadb, который в моем случае находится в / usr / local / bin / mysql?

Я попытался создать символическую ссылку в папке bin MAMP для указания на / usr / local / bin, но это не сработало. Хм.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2013

вот как я это делаю, чтобы вы могли использовать либо mysql, либо mariadb, так как mariadb - это капля замены (печатая это по памяти, поэтому, пожалуйста, дайте мне знать, если есть какие-то ошибки) ...

0) на всякий случай сделайте резервную копию своего db-каталога mysql и на всякий случай сделайте некоторую подготовку к mysql

$ cp -R /Applications/MAMP/db/mysql /Applications/MAMP/db/mysql.2013-02-06-1850.bak
$ /Applications/MAMP/bin/repairMysql.sh
$ /Applications/MAMP/bin/quickCheckMysqlUpgrade.sh
$ /Applications/MAMP/bin/upgradeMysql.sh

1) Сделайте копию или запишите некоторые настройки в вашем файле my.cnf. Он может быть расположен в самых разных местах, поэтому найти их все (есть куча):

$ locate my.cnf
/Applications/MAMP/conf/my.cnf
/etc/my.cnf
/usr/local/etc/my.cnf
/usr/local/etc/my.cnf.d
/usr/local/etc/my.cnf.d/client.cnf
/usr/local/etc/my.cnf.d/mysql-clients.cnf
/usr/local/etc/my.cnf.d/server.cnf

2) выяснить, какой my.cnf был загружен (для MAMP он МОЖЕТ быть в /Applications/MAMP/conf/my.cnf)

$ /usr/local/bin/mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 
$ /Applications/MAMP/Library/bin/mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf

3) сделайте резервную копию my.cnf в /etc/my.cnf и отредактируйте my.cnf, чтобы убедиться, что там есть несколько параметров, наиболее важно параметры порта, сокета и datadir, чтобы mariadb мог знать, где искать ваши файлы БД:

$ sudo cp /etc/my.conf /etc/my.cnf.2013-02-06-1858.bak
$ sudo vi /etc/my.cnf
port     = 3306
socket   = /Applications/MAMP/tmp/mysql/mysql.sock 
datadir  = /Applications/MAMP/db/mysql
tmpdir   = /Applications/MAMP/tmp/mysql

4) добавьте любые специфичные для mariadb параметры конфигурации, которые вам могут понадобиться, в раздел [mariadb]

5) установите mariadb (мне нравится использовать brew, но выбирайте яд) ... и вы можете сделать это в любое время

$ brew install mariadb

6) сделать символическую ссылку из my.conf из второго шага

$ sudo ln -s /Applications/MAMP/conf/my.cnf /etc/my.cnf

6a) вы можете поместить ваш my.cnf в любое место, при условии, что в /etc/my.cnf есть копия или ссылка на него ... цель в том, чтобы реализация mysql для mariadb и MAMP использовала один и тот же конфиг настройки.

7) теперь создаем скрипт оболочки для загрузки apache и mariadb

$ mkdir -p ~/scripts/mamp
$ touch ~/scripts/mamp/startSomething.sh ~/scripts/mamp/stopSomething.sh
$ chmod ug+rx ~/scripts/mamp/*Something.sh

8) получить / принять к сведению текущий скрипт запуска / остановки для apache (вероятно, он не будет чем-то необычным)

$ more /Applications/MAMP/bin/startApache.sh
$ more /Applications/MAMP/bin/stopApache.sh

9) получите установленный путь mariadb и убедитесь, что это версия mariadb

$ which mysql
/usr/local/bin/mysql
$ mysql --version
mysql  Ver 15.1 Distrib 5.5.29-MariaDB, for osx10.8 (i386) using readline 5.1

10) теперь редактируем startSomething.sh

# /bin/sh
/Applications/MAMP/Library/bin/apachectl start
/usr/local/bin/mysql.server start &

11) сделать то же самое для stopSomething.sh

# /bin/sh
/Applications/MAMP/Library/bin/apachectl stop
/usr/local/bin/mysql.server stop &

12) вот и все! начинать или останавливать вещи

$ ~/scripts/mamp/startSomething.sh
$ ~/scripts/mamp/stopSomething.sh

Если вы хотите ванильный MAMP, используйте приложение MAMP, которое поставляется с MAMP. в противном случае, получайте удовольствие от этой немного более быстрой базы данных с кучей забавных новых функций ... но имейте в виду, что, хотя mariadb по своему замыслу является заменой mysql, с другой стороны, это не так ( MariaDB v MySQL совместимость )

2 голосов
/ 18 июня 2012

MAMP использует MAMP / bin / startMysql.sh для запуска mysql.Попробуйте изменить это.

...