web-dev-qa-db-fra.com

Comment charger automatiquement MySQL au démarrage sous OS X Yosemite / El Capitan

Après la mise à niveau de OS X, mon installation de MySQL a cessé de se charger au démarrage.

Ce parcours sur MySQL dit:

"L'installation de l'élément de démarrage ajoute une variable MYSQLCOM = -YES- au fichier de configuration système/etc/hostconfig. Si vous souhaitez désactiver le démarrage automatique de MySQL, remplacez cette variable par MYSQLCOM = -NO-."

Alors, j'ai ouvert ce fichier et il dit:

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

Je suppose que les développeurs OSX ont ajouté le # This file is going away mais je ne suis pas certain.

Si tel est le cas, quelle est la bonne façon de démarrer MySQL au démarrage sous OSX Yosemite?

76
Justin

C'est ce qui a résolu ça:

Commencez par créer un nouveau fichier: /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>

Puis mettez à jour les permissions et ajoutez-le à launchctl:

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

Si vous avez installé mysql via homebrew , vous pouvez avoir launchd démarrer mysql à la connexion en:

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

La réponse acceptée ne fonctionnait pas pour démarrer automatiquement le serveur MySQL (et en fait, le volet des préférences bloquait les préférences système à chaque fois que j'essayais de l'ouvrir lorsqu'il était actif). 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 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

Mon Mac fonctionne sur El Capitan. MySQL installé via le brassage.

mysql.server status 

m'a dit que j'avais quelques problèmes à résoudre:

ERROR! MySQL is not running, but PID file exists

A trouvé homebrew.mxcl.mysql.plist fichier dans /usr/local/Cellar/mysql/x.x.x/ répertoire et copié-le dans /Library/LaunchDaemons/

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

Définissez toutes les autorisations nécessaires:

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

Partie utilisée des conseils, décrite par Justin

1
mulat

Il existe un script bash by MacMiniVault , qui le fera pour vous - et installera également MySQL. Il existe également un article qui décrit le processus.

Il est suggéré dans cet article de diriger le script directement dans Terminal et de l'exécuter, mais comme cela a de sérieuses répercussions sur la sécurité, il est préférable de télécharger et d'inspecter le script avant de l'exécuter localement.

Remarque: cette réponse a été retravaillée en réponse à des commentaires sur les implications pour la sécurité de suivre les instructions de l'article susmentionné. Il est généralement déconseillé de diriger directement un script Shell depuis une source inconnue vers bash. De même, si vous ne comprenez pas le script ou ne faites pas confiance à l'auteur, ne l'utilisez pas.

0