¿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)?

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

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

44
Para mí, el directorio de instalación de homebrew es/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

Siempre puede usar el comando "mysqladmin shutdown"


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

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


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.


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


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


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).


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).


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


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

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í


1

En OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

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

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.


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 / |


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.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.