Chciałbym automatycznie uruchamiać serwer MySQL przy starcie. Było to możliwe w Mavericks, ale wydaje się, że nie działa w Yosemite.
edycja : wydaje się, że to działa również z El Capitan

Odpowiedzi:
@dcc był bardzo blisko. Oto jak MySQL ponownie uruchamia się automatycznie w Yosemite:
com.mysql.mysql.plistW /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>
Dodatkowo zmieniłem uprawnienia w oparciu o tę odpowiedź
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Wreszcie uruchamiam to polecenie
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Jeśli masz jakiś dodatek, udostępnij go poniżej!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Postępowałem zgodnie ze wskazówkami @Xavers i próbując wykonać polecenie
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
otrzymał błąd:
/Library/LaunchDaemons/com.mysql.mysql.plist: Nieprawidłowa lista właściwości
Po chwili drapania się po głowie stwierdziłem, że usunięcie deklaracji DOCTYPE DTD u góry spowodowało, że błąd zniknął i po ponownym uruchomieniu serwer mySQL rzeczywiście działa.
Tak więc mój XML wygląda następująco:
<?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>
Jeśli zainstalowałeś mysql z homebrew , możesz uzyskać instrukcje, jak go automatycznie uruchomić, wpisując brew info mysql.
Na przykład wynik na moim komputerze to:
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
Utwórz /Library/LaunchDaemons/com.mysql.mysql.plisti zapisz go za pomocą następującego pliku 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>
Następnie załaduj nowo utworzony plik plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
apachectl starturuchamia serwer !? czy są spokrewnieni?
sudo launchctl load -w...Zgłasza błądInvalid property list
Ten artykuł pomoże mi rozwiązać problem z nieprawidłowym błędem. Poprawiona lista, której użyłem poniżej.
Jak sprawdzić, która linia pliku plist jest nieprawidłowa
<?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>
Żadna z pozostałych odpowiedzi nie pomogła w automatycznym uruchomieniu mojego serwera MySQL. Postępowałem zgodnie z instrukcjami zawartymi w podręczniku MySQL 5.6 i w końcu ponownie uruchamia się automatycznie! Utwórz plik /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistz następującą zawartością:
<?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>
I uruchom następujące polecenia po utworzeniu pliku:
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
Kiedy użyłem plist sugerowanego we wcześniejszych odpowiedziach, zmieniłem użytkownika na _mysql dla mojego systemu, ale przycisk „Zatrzymaj serwer MySQL” w panelu preferencji MySQL już nie działał. KeepAliveKlawisz spowoduje, że proces ponownie uruchomić natychmiast po naciśnięciu przycisku STOP. Użyłem klawisza, RunAtLoadaby uruchomić go po ponownym uruchomieniu, ale pozwoliłem, aby przycisk w okienku kontynuował pracę.
<?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>
Następnie, podobnie jak w innych odpowiedziach, uruchomiono:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Teraz MySQL uruchamia się po ponownym uruchomieniu, ale panel MySQL w Preferencjach systemowych nadal działa. Prowadzę El Capitan, 10.11.2