Ik wil de MySQL-server automatisch starten bij het opstarten. Dit was mogelijk in Mavericks, maar lijkt niet te werken op Yosemite.
bewerken: het lijkt erop dat dit ook werkt met El Capitan
Antwoord 1, autoriteit 100%
@dcc was heel dichtbij. Zo start MySQL automatisch opnieuw op Yosemite:
De com.mysql.mysql.plist
in /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>
Bovendien heb ik de rechten gewijzigd op basis van dit antwoord
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Eindelijk voer ik deze opdracht uit
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Als je iets hebt, deel het dan hieronder!
Antwoord 2, autoriteit 9%
Ik volgde de @Xavers-aanwijzingenen toen ik probeerde de opdracht uit te voeren
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
kreeg de fout:
/Bibliotheek/LaunchDaemons/com.mysql.mysql.plist: Ongeldige eigenschappenlijst
Na een minuut lang mijn hoofd te krabben, ontdekte ik dat het verwijderen van de DOCTYPE DTD-declaratie bovenaan de fout deed verdwijnen en bij het opnieuw opstarten is de mySQL-server inderdaad actief.
Mijn XML ziet er dus als volgt uit:
<?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>
Antwoord 3, autoriteit 6%
Als je mysql met homebrew hebt geïnstalleerd, kun je instructies krijgen om het automatisch te starten door brew info mysql
te typen.
De uitvoer op mijn machine is bijvoorbeeld:
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
Antwoord 4
Maak /Library/LaunchDaemons/com.mysql.mysql.plist
en sla het op met de volgende 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>
Laad vervolgens het nieuw gemaakte plist-bestand
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Antwoord 5
Dit artikel helpt me het probleem met een ongeldige fout op te lossen. Gecorrigeerde plist die ik hieronder heb gebruikt.
Weten welke regel van het plist-bestand is onjuist
<?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>
Antwoord 6
Geen van de andere gegeven antwoorden werkte om mijn MySQL-server automatisch te starten. Ik volgde de instructies van het MySQL 5.6-handboeken het begint eindelijk weer automatisch! Maak het bestand /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
met de volgende inhoud:
<?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>
En voer de volgende opdrachten uit nadat u het bestand hebt gemaakt:
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
Antwoord 7
Toen ik de plist gebruikte die in eerdere antwoorden werd gesuggereerd, veranderde ik de gebruiker in _mysql voor mijn systeem, maar de knop “Stop MySQL Server” in het MySQL-voorkeurenpaneel werkte niet meer. De KeepAlive
-toets zorgt ervoor dat het proces onmiddellijk opnieuw wordt gestart nadat op de knop Stop is gedrukt. Ik heb de sleutel RunAtLoad
gebruikt om het gewoon te laten starten bij het opnieuw opstarten, maar laat de knop in het paneel blijven werken.
<?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>
Vervolgens, zoals in de andere antwoorden, liep:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Nu wordt MySQL gestart bij opnieuw opstarten, maar het MySQL-paneel in Systeemvoorkeuren werkt nog steeds.
Ik run El Capitan, 10.11.2