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
Respuestas:
@dcc estuvo muy cerca. Así es como MySQL se inicia automáticamente de nuevo en Yosemite:
El com.mysql.mysql.plist
en /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>
Además, cambié los permisos en función de esta respuesta
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Finalmente ejecuto este comando
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Si tiene alguna adición, ¡compártala a continuación!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Seguí @Xavers direcciones y al intentar ejecutar el comando
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
se le dio el error:
/Library/LaunchDaemons/com.mysql.mysql.plist: Lista de propiedades no válidas
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>
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.plist
Crear /Library/LaunchDaemons/com.mysql.mysql.plist
y 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.plist
apachectl start
inicia el servidor? están relacionados?
sudo launchctl load -w...
lanza un errorInvalid property list
Este 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>
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.plist
con 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.plist
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 KeepAlive
tecla hará que el proceso se inicie nuevamente inmediatamente después de presionar el botón Detener. Usé la clave RunAtLoad
para 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.plist
Ahora, 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