¿Cómo puedo deshabilitar MySQL desde el inicio?


10

Tengo un MBA de mediados de 2013 con OSX 10.9.

El proceso que comienza en cada inicio es mysqld. Creo que era de una versión anterior de MySQL que había instalado (a través de AMPPS ). Luego instalé MAMP Pro y a menudo tengo conflictos entre estos dos procesos. Cada vez que apago y reinicio mi Mac, tengo que encontrar el proceso mysqldque se está ejecutando (en el monitor de actividad), cerrarlo y luego iniciar MAMP (a través del comando de terminal: /Application/MAMP/bin/startMysql.shno funcionará desde ningún otro lugar).

Así que me pregunto cómo puedo desactivar esto para que mysqldno se ejecute en cada inicio.


¿Puede ejecutar pspara rastrear el proceso principal y ver qué está comenzando mysqld?
bmike

Veamos si alguien tiene información más específica. Rastrear procesos y matarlos desde la terminal no es lo más fácil de escribir. Puede obtener la misma información del Monitor de actividad: seleccione mysql, luego información y luego busque el proceso principal.
bmike

1
Posible respuesta útil de Superusuario: superusuario.com/a/334622
Mikey TK

No estoy seguro si esto puede ayudar porque es para aplicaciones iniciadas al inicio, sin embargo, eche un vistazo a Preferencias del sistema >> Usuarios y grupos >> Elementos de inicio de sesión. Encontrará la aplicación que se inicia al inicio.
FeliceM

¿Estás seguro de que es AMPPS y no solo MAMP ejecutándose al inicio? Reinicie la computadora e ingrese 'ps -Awww | grep mysql 'en la terminal. Esto al menos debería decirle qué ejecutable se está ejecutando.
MJ Walsh

Respuestas:


10

Abra la terminal, luego:

sudo launchctl list | grep -i mysql

launchctl remove xxx.xxx.mysql

Donde "xxx.xxx" se incluye en la salida del primer comando, por ejemplo "org.macports.mysql". La contraseña para el comando "sudo" es la contraseña de su propia cuenta de usuario.

Es cierto que sudo no es necesario para "enumerar", pero debido a que ya proporcionó una contraseña de sudo para el primer comando, se almacena durante un breve período de tiempo en la memoria de la sesión y no se requiere para el segundo comando (que es privilegiado). De lo contrario, solo omita sudo en el primer comando y úselo en el segundo. Hay más formas de desollar a un gato.


2
sudo launchctl list | grep -i mysqlno produce resultados. Tampoco sudo launchctl list | grep -i mysqld i.imgur.com/WZ5EVjw.png
Zaki Aziz

Puede usar el Panel de administración de AMPPS para deshabilitar el demonio AMPPS MySQL. O mejor aún, simplemente desinstale AMPPS por completo ya que tiene otro marco instalado ahora.
user64759

Desinstalé AMPPS y todavía tengo este problema.
Zaki Aziz

3

Si la versión de MySQL que se instaló anteriormente se originó en la página de descargas de la comunidad MySQL en el sitio SUN / Oracle, es probable que launchdno esté involucrada con el inicio del mysqldproceso. Por alguna razón, la secuencia de comandos de inicio que se distribuye con MySQL utiliza la tecnología obsoleta "Elementos de inicio" para iniciar procesos en el arranque. De hecho, incluso la distribución binaria actual (5.6.15) mysqldusa StartupItems para iniciar el servidor en OS X (?!)

La secuencia de comandos de inicio que está iniciando la versión conflictiva de MySQL probablemente se encuentre en /Library/StartupItems/MYSQLCOM/MYSQLCOM. En el momento del arranque, ese elemento de inicio examinará el archivo en /etc/hostconfigpara determinar si la configuración de la variable "MYSQLCOM" está establecida en "-YES-". Si es así, se iniciará el script de inicio mysqld.

Debería ser posible deshabilitar el inicio de MySQL modificando la línea /etc/hostconfigque especifica MYSQLCOM=-YES-decir MYSQLCOM=-NO-(que debería deshabilitar el proceso de inicio en el próximo inicio).

Puede finalizar la instancia actualmente en ejecución de mysqldejecutando el comando:

sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop

Para deshabilitar permanentemente el inicio del proceso incorrecto mysqld , debería ser posible detener primero el demonio usando el comando anterior, y luego eliminar el elemento de inicio de MySQL usando el siguiente comando:

sudo rm -rf /Library/StartupItems/MYSQLCOM

Nota: también puede tener instalado el Panel de preferencias de MySQL en /Library/PreferencePanes/MySQL.prefpaneo ~/Library/PreferencePanes/MySQL.prefpane... Ese panel de preferencias también puede eliminarse para 'limpiar' piezas de la antigua instalación de MySQL.


Desafortunadamente no tengo nada en mi archivo / etc / hostconfig que se asocie con MySQL: i.imgur.com/3C2jxPZ.png
Zaki Aziz

Y sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stoptampoco ceda nada: i.imgur.com/ukHtW5x.png
Zaki Aziz

3

Lo siguiente funcionó para mí con mysql 8.0.12instalado usando Homebrew en macOS Mojave 10.14.1:

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Funcionó para reunirse en homebrew instalado mysql. Gracias.
Almas Dusal

1

Puede ser más fácil cambiar el nombre de mysqld (o moverlo / respaldarlo / eliminarlo) y luego reiniciar y buscar el mensaje de error para el elemento de inicio que intentaba iniciar el programa que ya no está disponible.

Las otras respuestas parecen cubrir la táctica de buscar Agentes de lanzamiento y Daemons de lanzamiento, así como rastrear el PID que generalmente no funciona para los demonios, ya que generalmente tienen un PID principal de 1.

Además, dado que mysql no se envía con Mavericks, debería poder rastrear el paquete de instalación que seleccionó o usar mdfind mysqldpara ubicar el paquete que trajo esa base de datos a su Mac y luego ubicar las instrucciones de desinstalación / desactivación para ese paquete de mysql. También querrá buscar en las preferencias del sistema en caso de que haya instalado un control allí para iniciar el software.


mdfind mysqldno muestra ningún archivo MySQL relacionado con AMPPS, solo archivos relacionados con MAMP (y algunos otros de cualquiera de los programas MySQL que he instalado como MySQL Workbench)
Zaki Aziz

1

Comience por descubrir cuál es el proceso principal que inició su mysql. Desde la Terminal, ejecute un pscomando para averiguar cuál es el proceso; puede usar -jo -lpara enumerar la identificación principal ppid. Entonces esto te mostrará:

$ ps -axjc | grep mysql

La primera columna es su ID de usuario, la segunda es la ID del proceso, la tercera es la ID principal.

Si la identificación principal es 1, entonces habrá sido iniciada por el demonio de lanzamiento raíz, lo que probablemente significa que proviene de uno de los LaunchDaemons o StartupItems. Si proviene de un proceso que no es 1 pero que es un proceso de lanzamiento, entonces ese es probablemente el LaunchAgents o está en los elementos de inicio de sesión de su sistema.

root                1     0     1      0    0 Ss     ??    4:49.10 launchd
alblue            257     1   257      0    0 Ss     ??    0:16.29 launchd
_spotlight        415     1   415      0    0 Ss     ??    0:00.94 launchd

Entonces, el proceso 1 se inicia al iniciar el sistema, y ​​cualquier cosa con el proceso padre de 1 proviene de los demonios del sistema. Cualquier cosa (en este caso) con un proceso principal de 257 se inicia desde uno de los Agentes de inicio de sesión o Artículos de inicio de sesión.

Tenga en cuenta que el nombre del daemon de lanzamiento o elemento de inicio no necesariamente tiene 'mysql' en el título; podría haber sido ejecutado por un programa diferente o elemento de inicio de sesión (por lo que simplemente buscarlo por nombre podría no encontrarlo) . Una vez que haya encontrado lo que lo lanzó, es posible que pueda averiguar de dónde vino.

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.