web-dev-qa-db-fra.com

Démarrage automatique du serveur MySQL sur Mac OS X Yosemite / El Capitan

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

enter image description here

82
Xaver

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

143
Xaver

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

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

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

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
2
davidcondrey

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
1
NobleUplift

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

0
Franklin F