Как загружать MySQL при запуске на OS X Yosemite/El Capitan

После обновления ОС X моя установка MySQL прекратила загрузку при запуске.

Этот прохождение по MySQL говорит:

"Установка Startup Item добавляет переменную MYSQLCOM = -YES- к файл конфигурации системы /etc/hostconfig. Если вы хотите отключить автоматический запуск MySQL, измените эту переменную на MYSQLCOM = -NO -."

Итак, я открыл этот файл, и он говорит:

# This file is going away 
AFPSERVER=-NO- 
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-

Я предполагаю, что OSX dev добавил # This file is going away, но я не уверен.

Если это так, то каков правильный способ запуска MySQL при запуске на OSX Yosemite?

Ответ 1

Это то, что исправлено:

Сначала создайте новый файл:/Library/LaunchDaemons/com.mysql.mysql.plist

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true />
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>
    </array>        
  </dict>
</plist>

Затем обновите разрешения и добавьте их в launchctl:

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

Ответ 2

Если вы установили mysql через homebrew, вы можете launchd запустить mysql при входе по адресу:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

Ответ 3

Принятый ответ не работал для автоматического запуска моего сервера MySQL (и на самом деле моя панель настроек разбивала системные настройки каждый раз, когда я пытался открыть его, пока он был активным). Я выполнил инструкции справочник MySQL 5.6, и он, наконец, автоматически запускается! Создайте файл /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist со следующим содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--port=3306</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

И запустите следующие команды после создания файла:

cd /Library/LaunchDaemons
sudo chown root:wheel com.oracle.oss.mysql.mysqld.plist 
sudo chmod o-w com.oracle.oss.mysql.mysqld.plist 
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist

Ответ 4

Мой Mac работает на El Capitan. MySQL установлен через brew.

mysql.server status 

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

ERROR! MySQL is not running, but PID file exists

Найден homebrew.mxcl.mysql.plist файл в каталоге /usr/local/Cellar/mysql/x.x.x/ и скопировал его в /Library/LaunchDaemons/

sudo cp homebrew.mxcl.mysql.plist /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Задайте все необходимые разрешения:

sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Используемая часть советов, описанная Justin

Ответ 5

Существует bash script MacMiniVault, который сделает это за вас - и установите также MySQL. Существует также статья, в которой описывается процесс.

В статье предлагается подключить script прямо к терминалу и запустить его, но поскольку это имеет некоторые серьезные последствия для безопасности, лучше всего загрузить и осмотреть script, прежде чем запускать его локально.

Примечание. Этот ответ был переработан в ответ на комментарии о последствиях безопасности в соответствии с инструкциями в вышеупомянутой статье. Как правило, плохая идея подключить оболочку script к источнику неизвестно напрямую к bash. Кроме того, если вы не понимаете script или доверяете автору, не используйте его.