Me gustaría iniciar automáticamente el servidor MySQL al inicio. Esto fue posible en Mavericks, pero parece que no funciona en Yosemite.
editar : parece que esto también funciona con El Capitán

mysql
osx-yosemite
osx-elcapitan
Xaver
fuente
fuente

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plistSeguí @Xavers direcciones y al intentar ejecutar el comando
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plistse le dio el error:
Después de rascarme la cabeza por un minuto, descubrí que al eliminar la declaración DOCTYPE DTD en la parte superior, el error desaparecía y, al reiniciar, el servidor mySQL se está ejecutando.
Entonces, mi XML se ve así:
<?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>fuente
Si instaló mysql con homebrew , puede obtener instrucciones sobre cómo iniciarlo automáticamente escribiendo
brew info mysql.Por ejemplo, la salida en mi máquina es:
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.plistfuente
Crear
/Library/LaunchDaemons/com.mysql.mysql.plisty guardarlo con el siguiente 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>Luego cargue el archivo plist recién creado
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plistfuente
apachectl startinicia el servidor? están relacionados?sudo launchctl load -w...lanza un errorInvalid property listEste artículo me ayuda a resolver el problema del error no válido. Plist corregido que utilicé a continuación.
Cómo saber qué línea del archivo plist es incorrecta
<?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>fuente
Ninguna de las otras respuestas proporcionadas funcionó para iniciar automáticamente mi servidor MySQL. Seguí las instrucciones del manual de MySQL 5.6 y finalmente se inicia automáticamente de nuevo. Crea el archivo
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistcon el siguiente contenido:<?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>Y ejecute los siguientes comandos después de crear el archivo:
cd /Library/LaunchDaemons sudo launchctl load -F com.oracle.oss.mysql.mysqld.plistfuente
Cuando usé el plist sugerido en respuestas anteriores, cambié el usuario a _mysql para mi sistema, pero el botón "Detener servidor MySQL" en el panel de preferencias de MySQL ya no funcionaba. La
KeepAlivetecla hará que el proceso se inicie nuevamente inmediatamente después de presionar el botón Detener. Usé la claveRunAtLoadpara que se iniciara al reiniciar, pero permití que el botón en el panel siguiera funcionando.<?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>Luego, como en las otras respuestas, corrió:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plistAhora, MySQL se inicia al reiniciar, pero el panel de MySQL en Preferencias del sistema aún funciona. Estoy ejecutando El Capitán, 10.11.2
fuente