it-swarm.com.de

So laden Sie MySQL beim Start unter OS X Yosemite / El Capitan automatisch

Nach dem Upgrade von OS X wurde meine Installation von MySQL beim Start nicht mehr geladen.

Dies Anleitung zu MySQL sagt:

"Bei der Installation von Startup Item wird eine Variable MYSQLCOM = -YES- zur Systemkonfigurationsdatei/etc/hostconfig hinzugefügt. Wenn Sie den automatischen Start von MySQL deaktivieren möchten, ändern Sie diese Variable in MYSQLCOM = -NO-."

Also habe ich diese Datei geöffnet und es heißt:

# This file is going away 
AFPSERVER=-NO- 
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-

Ich nehme an, OSX-Entwickler haben das # This file is going away aber ich bin nicht sicher.

Wenn dies der Fall ist, wie kann MySQL beim Start unter OSX Yosemite ordnungsgemäß gestartet werden?

76
Justin

Das hat es behoben:

Erstellen Sie zunächst eine neue Datei: /Library/LaunchDaemons/com.mysql.mysql.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>        
  </dict>
</plist>

Aktualisieren Sie dann die Berechtigungen und fügen Sie sie zu launchctl hinzu:

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
170
Justin

Wenn Sie mysql über homebrew installiert haben, können Sie bei der Anmeldung launchd mysql starten lassen, indem Sie:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
15
Yeonho

Die akzeptierte Antwort funktionierte nicht, um meinen MySQL-Server automatisch zu starten. 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 chown root:wheel com.Oracle.oss.mysql.mysqld.plist 
Sudo chmod o-w com.Oracle.oss.mysql.mysqld.plist 
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
2
NobleUplift

Mein Mac läuft auf El Capitan. MySQL wird über Brew installiert.

mysql.server status 

sagte mir, dass ich einige Probleme zu lösen hatte:

ERROR! MySQL is not running, but PID file exists

Gefunden homebrew.mxcl.mysql.plist Datei in /usr/local/Cellar/mysql/x.x.x/ Verzeichnis und kopierte es nach /Library/LaunchDaemons/

Sudo cp homebrew.mxcl.mysql.plist /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Legen Sie alle erforderlichen Berechtigungen fest:

Sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Verwendeter Teil der Ratschläge, beschrieben von Justin

1
mulat

Es gibt ein Bash-Skript von MacMiniVault , das dies für Sie erledigt - und auch MySQL installiert. Es gibt auch einen Artikel , der den Vorgang beschreibt.

In diesem Artikel wird empfohlen, das Skript direkt in Terminal zu leiten und auszuführen. Da dies jedoch schwerwiegende Sicherheitsrisiken mit sich bringt, sollten Sie das Skript herunterladen und überprüfen, bevor Sie es lokal ausführen.

Hinweis: Diese Antwort wurde als Reaktion auf Kommentare zu den Sicherheitsaspekten der Befolgung der Anweisungen in dem oben genannten Artikel überarbeitet. Es ist im Allgemeinen eine schlechte Idee, ein Shell-Skript von einer unbekannten Quelle direkt an bash weiterzuleiten. Wenn Sie das Skript nicht verstehen oder dem Autor nicht vertrauen, sollten Sie es auch nicht verwenden.