¿Cómo se detiene MySQL en una instalación de Mac OS?

187

Instalé MySQL a través de MacPorts . ¿Cuál es el comando que necesito para detener el servidor (necesito probar cómo se comporta mi aplicación cuando MySQL está inactivo)?

Laurie Young
fuente

Respuestas:

377

Existen diferentes casos dependiendo de si instaló MySQL con el instalador binario oficial, utilizando MacPorts o Homebrew :

Cerveza casera

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

Nota: esto es persistente después de un reinicio.

Instalador binario

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
mloughran
fuente
Muchas gracias: tuve los comandos de detener e iniciar, pero no sabía ni pensaba en intentar reiniciar. Después de usar el comando detener, iniciar no haría nada, como comenzaría desde el panel de Preferencias del Sistema MySQL.
Ross Henderson
44
En mi caso, fue ligeramente diferente, porque el número de versión de mysql se agregó en el archivo plist. Fue así: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk
1
Y para mí, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky
10
Y para homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas
2
Si tiene instalados los Servicios Homebrew , puede usar brew services stop mysqly brew services start mysql. (Además restart, y runque comienza solo para la sesión actual.)
medmunds
138

Para aquellos que usaron homebrew para instalar MySQL, use los siguientes comandos a continuación para iniciar, detener o reiniciar MySQL

Comienzo de la cerveza

/usr/local/bin/mysql.server start

Reiniciar cerveza

/usr/local/bin/mysql.server restart

Parada de cerveza

/usr/local/bin/mysql.server stop
pjammer
fuente
44
Para mí, el directorio de instalación de homebrew es/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

Siempre puede usar el comando "mysqladmin shutdown"

Rimantas
fuente
1
Los comandos anteriores no funcionaron para mí. Este lo hizo. No estoy seguro de cuál es la diferencia en mi configuración, pero gracias.
Marco
2
Aunque puede funcionar, si está utilizando MacPorts y ejecuta esto, launchctl no se dará cuenta de que mysql se ha detenido y se quejará si intenta iniciarlo (cargar). Por lo tanto, es preferible usar launchctl.
lambshaanxy
1
Además, aunque esto funciona para apagar el servidor, no hará nada para ayudarlo a volver a encenderlo cuando desee reiniciarlo.
Aroth
3
Recuerde agregar -p e ingrese su contraseña de root mysql cuando se le solicite. En mi configuración donde mysql está instalado con MacPorts, mysql se reinició y volvió a cargar la configuración, que era el objetivo de mi acción.
Jesper Grann Laursen
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownsi tu mysql proviene de MacPorts
Alain Tiemblo
51

Si estás usando homebrewpuedes usar

brew services restart mysql
brew services start mysql
brew services stop mysql

para obtener una lista de los servicios disponibles

brew services list
ene
fuente
2
Esto funcionó para mí, incluso después de interactuar con launchctl directamente no lo hizo. ¡Gracias!
Lyndsy Simon
19

sudo /usr/local/mysql/support-files/mysql.server stop

Moesio
fuente
2
+1 esto fue solo uno que funcionó para mí --- Acabo de usar el instalador DMG de Mysql. Gracias
Dolan Antenucci
15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

También puede usar iniciar y reiniciar aquí. Encontré esto mirando los contenidos de /Library/LaunchDaemons/org.macports.mysql.plist.

katy lavallee
fuente
1
Así es como se supone que debe hacerlo ... Para MacPorts ... El launchctlmétodo NO funciona y, de hecho, puede causar problemas con el inicio y el gemido de inicio PID / DB.
Alex Gray
11

Tratar

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

Otra prueba:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Sin embargo, descubrí que la segunda opción solo funcionaba (OS X 10.6, MySQL 5.1.50) si el .plist se ha cargado con:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PD: También descubrí que necesitaba descargar .plist para obtener una instalación no relacionada de MAMP -MySQL para iniciar / detener correctamente. Después de ejecutar esto, MAMP-MySQL comienza bien:

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

zack
fuente
7

En mi mac osx yosemite 10.10. Este comando funcionó:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

Puede encontrar su archivo mysql en la carpeta / Library / LaunchDaemons / para ejecutar

Duc Chi
fuente
2
Esta es la única manera que funcionó para mí. Para cualquier otro método, el mysqldproceso se reinicia inmediatamente después de detenerse.
Rockallite
Esta es la única manera que funcionó para mí también. Cambié de homebrew a DMG suministrado por MySQL y creo que posiblemente la versión de brew todavía se estaba ejecutando a pesar de que la desinstalé.
Sam Critchley
5

Utilizar:

sudo mysqladmin shutdown --user=*user* --password=*password*

Uno probablemente podría salirse con la suya sin usar sudo . El usuario podría ser root, por ejemplo (es decir, el usuario root de MySQL).

Steve
fuente
4

Bueno, si todo lo demás falla, podría simplemente tomar el enfoque despiadado y matar el proceso que ejecuta MySQL manualmente.

Es decir,

ps -Af

para enumerar todos los procesos, luego haga " kill <pid>" dónde <pid>está la identificación del proceso del demonio MySQL (mysqld).

John Montgomery
fuente
sí ... este es el mejor y universal para scripting. ¿Crees que existe la posibilidad de corrupción de datos? o cualquier otro problema?
user425720
1
Esto tiene el potencial de corrupción de datos.
Dan Sandland
Pero como último esfuerzo, esto es adecuado.
Dan Sandland
4

Último OSX (10.8) y mysql 5.6, el archivo está en Launch Daemons y es com.oracle.oss.mysql.mysqld.plist. Presenta una opción en Opciones del sistema, generalmente al final de la lista. Vaya a la configuración del sistema, haga clic en Mysql y apáguelo desde el cuadro de opciones. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
fuente
2

Para mí está trabajando con un "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Todo es uno
fuente
2

En mi caso, siguió reiniciando tan pronto como terminé el proceso usando PID. También el brew stopcomando no funcionó como lo instalé sin usar homebrew. Luego fui a las preferencias del sistema mac y tenemos MySQL instalado allí. Simplemente ábralo y detenga el servidor MySQL y listo. Aquí en la captura de pantalla, puede encontrar MySQL en la parte inferior de las preferencias del sistema.ingrese la descripción de la imagen aquí

bromista
fuente
1

En OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
fuente
0

Instalé mysql5 y mysql55 sobre macports. Para mí, los archivos mencionados aquí se encuentran en los siguientes lugares:

(servidor-mysql55) /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5) /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

Entonces, parando para estos trabajos como este:

mysql55-server:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

mysql5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

Puede verificar si el servicio aún se está ejecutando con:

ps ax | grep mysql

Además, puede consultar los archivos de registro en mi caso aquí:

mysql55-server

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

mysql5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended
Manuel_B
fuente
0

Si instaló el paquete MySQL 5 con MacPorts:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

O

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

Si instaló el mysql5-develpaquete.

Bartosz Blimke
fuente
1
Esto evitará que se inicie cuando reinicies, que no es lo que pedía el cartel.
Matthew Schinckel
0

mysql> muestra variables donde variable_name como '% dir%';

El | datadir | / opt / local / var / db / mysql5 / |

Jack Peng
fuente
0

Después de probar todas esas líneas de comando, y no funciona. Tengo que hacer lo siguiente:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

De esta manera funciona, el proceso mysqld se ha ido. pero /var/log/system.log tiene mucha basura:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
hombre de bronce
fuente