sierra - Inicio automático del servidor MySQL en Mac OS X Yosemite/El Capitan
restart mysql mac command line (7)
@dcc estaba muy cerca. Así es como MySQL se reinicia automáticamente 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, he cambiado los permisos basados en 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, ¡comparta a continuación!
Me gustaría iniciar automáticamente el servidor MySQL al inicio. Esto fue posible en Mavericks, pero parece no estar funcionando en Yosemite.
editar : parece que esto también funciona con El Capitán
Cree
/Library/LaunchDaemons/com.mysql.mysql.plist
y guárdelo con la siguiente lista:
<!--?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
Cuando utilicé el plist sugerido en las respuestas anteriores, cambié el usuario a _mysql para mi sistema, pero el botón "Detener el servidor MySQL" en el panel de preferencias de MySQL ya no funcionaba.
La tecla
KeepAlive
hará que el proceso se inicie nuevamente inmediatamente después de presionar el botón Detener.
Utilicé la tecla
RunAtLoad
para que solo comenzara al reiniciar, pero
RunAtLoad
que el botón en el panel continuara 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 MySQL en Preferencias del sistema aún funciona. Estoy corriendo El Capitán, 10.11.2.
Este artículo me ayuda a resolver el problema con un 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 reinicia automáticamente.
Cree 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
Si
instaló mysql con homebrew
, puede obtener instrucciones sobre cómo iniciarlo automáticamente escribiendo
brew info mysql
.
Por ejemplo, el resultado 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
Seguí las instrucciones de @revaxarts 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álida
Después de rascarme la cabeza por un minuto, descubrí que al eliminar la declaración DOCTYPE DTD en la parte superior, el error desapareció 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>