it-swarm.com.de

Autostart von MySQL Server unter Mac OS X Yosemite / El Capitan

Ich möchte den MySQL-Server beim Start automatisch starten. Dies war bei Mavericks möglich, scheint aber bei Yosemite nicht zu funktionieren.

edit: Das scheint auch mit El Capitan zu funktionieren

enter image description here

82
Xaver

@ dcc war sehr nah. So startet MySQL unter Yosemite wieder automatisch:

Das com.mysql.mysql.plist im /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>

Zusätzlich habe ich die Berechtigungen basierend auf diese Antwort geändert

Sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist

Zum Schluss führe ich diesen Befehl aus

Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

Wenn Sie eine Ergänzung haben, teilen Sie diese bitte unten mit!

143
Xaver

Ich folgte @ revaxarts Richtungen und beim Versuch, den Befehl auszuführen

Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

wurde der Fehler gegeben:

/Library/LaunchDaemons/com.mysql.mysql.plist: Ungültige Eigenschaftsliste

Nachdem ich mir eine Minute am Kopf gekratzt hatte, stellte ich fest, dass durch das Entfernen der DOCTYPE-DTD-Deklaration oben der Fehler behoben wurde und beim Neustart von mySQL Server tatsächlich ausgeführt wird.

Mein XML sieht also so aus:

<?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>
13
Genia S.

Wenn Sie mysql mit homebrew installiert haben, können Sie Anweisungen zum automatischen Starten erhalten, indem Sie brew info mysql.

Die Ausgabe auf meinem Computer lautet beispielsweise:

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
9
Kyle Chadha

Dieser Artikel hilft mir, das Problem mit einem ungültigen Fehler zu beheben. Korrigierter Plist, den ich unten verwendet habe.

Woher weiß ich, welche Zeile der Plist-Datei falsch ist

<?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>
2
Sharvin

Erstellen /Library/LaunchDaemons/com.mysql.mysql.plist und speichere es mit der folgenden Liste:

<!--?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>

Laden Sie dann die neu erstellte plist-Datei

Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
2
davidcondrey

Keine der anderen Antworten hat zum automatischen Starten meines MySQL-Servers beigetragen. Ich habe die Anweisungen aus dem MySQL 5.6-Handbuch befolgt und es wird endlich wieder automatisch gestartet! Erstelle die Datei /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist mit folgendem Inhalt:

<?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>

Führen Sie nach dem Erstellen der Datei die folgenden Befehle aus:

cd /Library/LaunchDaemons
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
1
NobleUplift

Als ich die in früheren Antworten vorgeschlagene plist verwendet habe, habe ich den Benutzer für mein System auf _mysql geändert, aber die Schaltfläche "Stop MySQL Server" im MySQL-Einstellungsbereich hat nicht mehr funktioniert. Die Taste KeepAlive bewirkt, dass der Vorgang unmittelbar nach dem Drücken der Stopptaste erneut gestartet wird. Ich habe den Schlüssel RunAtLoad verwendet, um ihn beim Neustart zu starten, aber die Schaltfläche im Fensterbereich weiterarbeiten zu lassen.

<?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>

Dann, wie in den anderen Antworten, lief:

Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

Jetzt wird MySQL beim Neustart gestartet, der MySQL-Bereich in den Systemeinstellungen funktioniert jedoch weiterhin. Ich leite El Capitan, 10.11.2

0
Franklin F