Je souhaite démarrer automatiquement le serveur MySQL au démarrage. Cela était possible dans Mavericks mais semble ne pas fonctionner sur Yosemite.
edit: semble que ça marche aussi avec El Capitan
@dcc était très proche. Voici comment MySQL démarre à nouveau sur Yosemite:
Le com.mysql.mysql.plist
dans /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>
De plus, j'ai changé les permissions en fonction de cette réponse
Sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Enfin je lance cette commande
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Si vous avez des ajouts s'il vous plaît partager ci-dessous!
J'ai suivi @ revaxarts directions et en essayant d'exécuter la commande
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
a été donné l'erreur:
/Library/LaunchDaemons/com.mysql.mysql.plist: liste de propriétés non valide
Après m'être gratté la tête pendant une minute, j'ai constaté que la suppression de la déclaration DOCTYPE DTD en haut faisait disparaître l'erreur et qu'au redémarrage, le serveur mySQL était en cours d'exécution.
Donc, mon XML ressemble à ceci:
<?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>
Si vous installé mysql avec homebrew, vous pouvez obtenir des instructions sur la procédure de démarrage automatique en tapant brew info mysql
.
Par exemple, la sortie sur ma machine est:
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
Cet article m'aide à résoudre le problème avec une erreur non valide. Plist corrigé j'ai utilisé ci-dessous.
Comment savoir quelle ligne du fichier plist est incorrecte
<?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>
Créer /Library/LaunchDaemons/com.mysql.mysql.plist
et enregistrez-le avec le répertoire suivant:
<!--?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>
Puis chargez le fichier plist nouvellement créé
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Aucune des autres réponses fournies n'a fonctionné pour démarrer automatiquement mon serveur MySQL. J'ai suivi les instructions de manuel de MySQL 5.6 et le programme redémarre enfin! Créez le fichier /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist
avec le contenu suivant:
<?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>
Et lancez les commandes suivantes après avoir créé le fichier:
cd /Library/LaunchDaemons
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
Lorsque j'ai utilisé la plist suggérée dans les réponses précédentes, j'ai changé l'utilisateur en _mysql pour mon système, mais le bouton "Arrêter le serveur MySQL" dans le volet des préférences de MySQL ne fonctionnait plus. La touche KeepAlive
fera redémarrer le processus immédiatement après avoir appuyé sur le bouton Arrêter. J'ai utilisé la clé RunAtLoad
pour qu'elle démarre au redémarrage, tout en laissant le bouton de la sous-fenêtre continuer à fonctionner.
<?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>
Puis, comme dans les autres réponses, a couru:
Sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Maintenant, MySQL démarre au redémarrage, mais le volet MySQL des Préférences Système fonctionne toujours. Je cours El Capitan, 10.11.2