MySQL Preference Pane control для MySQL, установленный через Homebrew

Ответы:

10

У меня была такая же проблема. После того, как я погуглил мою задницу, вот что я смог выяснить:

  1. установите символические ссылки на установку MySQL Homebrew в /usr/local/mysql:

    mkdir -p /usr/local/mysql; cd /usr/local/mysql
    ln -s $(brew --prefix mysql)/* .
    

    (это уже позволяет вам останавливать MySQL Server с помощью кнопки в этой области настроек - потому что он просто использует mysqladminдвоичный файл - но не для его запуска )

  2. Панель настроек пытается запустить сервер MySQL как пользователь mysqlили_mysql вместо того, чтобы запускать его с вашим именем пользователя. Говорят, что в любом случае было бы неплохо иметь выделенного пользователя UNIX для сервера SQL ... Поэтому каталог данных должен принадлежать пользователю, который называется _mysqlили mysqlтакже.

    Вы можете узнать, где находится ваш каталог данных, по поиску записи datadir=внутри /etc/my.cnf, или $HOME/.my.cnf, или $(brew --prefix mysql)/support-files/mysql.server, затем, chownсоответственно.

    Кроме того, вы можете начать с новой директории данных, используя mysql_install_db:

    unset TMPDIR
    sudo mysql_install_db --user=_mysql --basedir="$(brew --prefix mysql)" --datadir=/your/data/dir
    

    Обратите внимание, что после такой установки вы больше не сможете запускать сервер MySQL с вашим именем пользователя, по крайней мере, без него sudo -u.

    Если в _mysqlвашей системе нет вызываемых пользователей и / или групп , вы можете создать их с помощью dsclутилиты командной строки, как описано здесь .

  3. Чтобы автоматически запустить сервер MySQL при запуске системы, вам нужно установить элемент запуска MySQL , затем активировать флажок на панели настроек, и, если вы выполнили шаги 1 и 2, при следующей перезагрузке это должно работать как чудо!

fanaugen
источник
Сначала я не могу использовать кнопку «Пуск / Стоп», затем я удаляю prefPane, повторяю все шаги, затем устанавливаю prefPane, и все работает. Благодарность!
Taiansu