Я бы хотел запустить сервер MySQL при запуске. Это было возможно в Маверикс, но, похоже, он не работал над Йосемити.Autostart MySQL Server на Mac OS X Yosemite/El Capitan
редактировать: Кажется, это работает с El Capitan, а
Я бы хотел запустить сервер MySQL при запуске. Это было возможно в Маверикс, но, похоже, он не работал над Йосемити.Autostart MySQL Server на Mac OS X Yosemite/El Capitan
редактировать: Кажется, это работает с El Capitan, а
@dcc был очень близок. Это как MySQL снова автозапуск на Yosemite:
com.mysql.mysql.plist
в /Library/LaunchDaemons
:
<?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>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
Кроме того, я изменил разрешение, основанное на this answer
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
Если у вас есть ny добавление, пожалуйста, поделитесь ниже!
Создать /Library/LaunchDaemons/com.mysql.mysql.plist
и сохранить его следующим 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>
</true>
</dict>
</plist>
Затем загрузите вновь созданный файл Plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
не работает, он все еще говорит «остановлен» после перезагрузки :( – Xaver
просто опубликовал второй возможный метод, если вы хотите его попробовать .. – davidcondrey
'apachectl start' запускает сервер !? Связаны ли они? – Xaver
Эта статья поможет мне решить проблему с неправильной ошибкой. Исправленный слой, который я использовал ниже.
How to know which line of plist file is incorrect
<?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>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
Я последовал @revaxarts directions и при попытке выполнить команду
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
получил ошибку:
/Library/LaunchDaemons/com.mysql.mysql.plist: Invalid property list
После чесать голову на минуту я нашел что удаление декларации DTD DOCTYPE вверху сделало t он уходит, и после перезагрузки mySQL-сервер действительно работает.
Итак, мой XML выглядит следующим образом:
<?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>
Когда я использовал PLIST предложил в предыдущих ответах, я изменил пользователь _mysql для моей системы, но кнопка «Стоп сервер MySQL» в MySQL панель предпочтений больше не работает. Клавиша KeepAlive
заставит процесс запуска снова сразу после нажатия кнопки «Стоп». Я использовал ключ RunAtLoad
, чтобы запустить его при перезагрузке, но позвольте кнопке в панели продолжить работу.
<?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>RunAtLoad</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>
Затем, как и в других ответах, гласил:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Теперь MySQL запускает на рестарте, но панель MySQL в настройках системы все еще работает. Я бегу El Capitan, 10.11.2
Если вы установили MySQL с доморощенного, вы можете получить инструкции о том, как автозапуск его, набрав brew info mysql
.
Например, выход на моей машине:
To have launchd start mysql at login:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Ни один из других предоставленных ответов работал для автоматического запуска моего сервера MySQL. Я следовал инструкциям от the MySQL 5.6 handbook, и он, наконец, автоматически запускается! Создайте файл /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 launchctl load -F com.oracle.oss.mysql.mysqld.plist
Вы должны отметить свой ответ Q, чтобы другие люди нашли ваше решение. – davidcondrey
Я мечтаю о том, когда придет OSX 10.11, и мне не придется тратить 2 часа на исправление apache, php и mysql. Может быть, пришло время переехать в Бродягу. – dvk3
всего два часа! haha – Xaver