Autostart MySQL Server op Mac OS X Yosemite/El Capitan

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

voer hier de afbeeldingsbeschrijving in


Antwoord 1, autoriteit 100%

@dcc was heel dichtbij. Zo start MySQL automatisch opnieuw op Yosemite:

De com.mysql.mysql.plistin /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 mysqlte 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.plisten 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.plistmet 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 RunAtLoadgebruikt 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

Other episodes