Vorrei avviare automaticamente il server MySQL all'avvio. Questo era possibile in Mavericks ma sembra non funzionare su Yosemite.
modifica : sembra che funzioni anche con El Capitan
Risposte:
@dcc era molto vicino. Ecco come MySQL si riavvia automaticamente su Yosemite:
Il 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>
Inoltre ho modificato le autorizzazioni in base a questa risposta
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Finalmente eseguo questo comando
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Se hai qualche aggiunta, condividi qui sotto!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
. Ho scoperto che il file .plist era ancora intatto nella directory.
Ho seguito le indicazioni di @Xavers e dopo aver tentato di eseguire il comando
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
è stato dato l'errore:
/Library/LaunchDaemons/com.mysql.mysql.plist: elenco di proprietà non valido
Dopo aver grattato la testa per un minuto ho scoperto che la rimozione della dichiarazione DOCTYPE DTD in alto ha fatto scomparire l'errore e al riavvio il server mySQL è, infatti, in esecuzione.
Quindi, il mio XML ha questo aspetto:
<?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>
Se hai installato mysql con homebrew , puoi ottenere istruzioni su come avviarlo automaticamente digitando brew info mysql
.
Ad esempio, l'output sulla mia macchina è:
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
Crealo /Library/LaunchDaemons/com.mysql.mysql.plist
e salvalo con il seguente 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>
Quindi carica il file plist appena creato
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
apachectl start
avvia il server !? sono imparentati?
sudo launchctl load -w...
lancia un erroreInvalid property list
Questo articolo mi aiuta a risolvere il problema con un errore non valido. Plist corretto che ho usato di seguito.
Come sapere quale riga del file plist non è corretta
<?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>
Nessuna delle altre risposte fornite ha funzionato per avviare automaticamente il mio server MySQL. Ho seguito le istruzioni del manuale MySQL 5.6 e finalmente si riavvia automaticamente! Crea il file /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
con il seguente contenuto:
<?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>
Ed esegui i seguenti comandi dopo aver creato il file:
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
Quando ho utilizzato il plist suggerito nelle risposte precedenti, ho cambiato l'utente in _mysql per il mio sistema, ma il pulsante "Stop MySQL Server" nel pannello delle preferenze di MySQL non funzionava più. Il KeepAlive
tasto farà ripartire il processo immediatamente dopo aver premuto il pulsante Stop. Ho usato la chiave RunAtLoad
per farlo partire al riavvio, ma consenti al pulsante nel riquadro di continuare a funzionare.
<?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>
Quindi, come nelle altre risposte, ha eseguito:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Ora MySQL si avvia al riavvio, ma il pannello MySQL in Preferenze di Sistema funziona ancora. Corro El Capitan, 10.11.2