¿Cómo puedo desactivar el inicio de MySQL en el arranque?

8

Tengo un MBA a mediados de 2013 con OSX 10.9.

El proceso que se inicia en cada inicio es mysqld . Creo que era de una versión antigua 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 de mysqld que se está ejecutando (en el monitor de actividad), cerrarlo y luego iniciar MAMP (a través del comando del terminal: /Application/MAMP/bin/startMysql.sh no funcionará desde ningún lugar else).

Así que me pregunto cómo puedo desactivar este mysqld para que no se ejecute en cada inicio.

    
pregunta Xecure 12.12.2013 - 22:09

5 respuestas

8

Abre el 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.

Cierto, sudo no es necesario para "listar", pero como ya le dio una contraseña de sudo para el primer comando, se almacena por un corto tiempo en la memoria de la sesión y no es necesario para el segundo comando (que es privilegiado ). De lo contrario, simplemente omita sudo en el primer comando y úselo en el segundo. Hay más formas que una para despellejar a un gato.

    
respondido por el user64759 13.12.2013 - 12:40
2

Si la versión de MySQL que se instaló anteriormente se originó en la página de descargas de la comunidad de MySQL en el sitio de SUN / Oracle, es probable que launchd no esté involucrado en el inicio del proceso mysqld . Por algún motivo, el script de inicio que se distribuye con MySQL usa el Elementos de inicio " para iniciar procesos en el arranque. De hecho, incluso la distribución binaria actual (5.6.15) de mysqld usa StartupItems para iniciar el servidor en OS X (?!)

Lo más probable es que el script de inicio que está iniciando la versión conflictiva de MySQL se encuentre en /Library/StartupItems/MYSQLCOM/MYSQLCOM . En el momento del arranque, ese elemento de inicio examinará el archivo en /etc/hostconfig para determinar si la configuración de la variable "MYSQLCOM" está establecida en "-YES-". Si es así, el script de inicio lanzará mysqld .

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

Puede terminar la instancia actualmente en ejecución de mysqld ejecutando el comando:

sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop

Para deshabilitar permanentemente el inicio del proceso incorrecto mysqld , debería ser posible detener primero el daemon 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 el Panel de preferencias de MySQL instalado en /Library/PreferencePanes/MySQL.prefpane o ~/Library/PreferencePanes/MySQL.prefpane ... Ese panel de preferencias también se puede eliminar para "limpiar" las piezas de la instalación de MySQL anterior.

    
respondido por el Eddie Kelley 02.01.2014 - 17:29
1

Puede ser más fácil cambiar el nombre de mysqld (o moverlo / hacer una copia de seguridad / borrarlo) y luego reiniciar y buscar el mensaje de error para el elemento de inicio que estaba intentando iniciar el programa que ya no está disponible.

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

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

    
respondido por el bmike 02.01.2014 - 08:22
1

Comience por averiguar qué proceso padre inició su mysql. Desde la Terminal, ejecute un comando ps para averiguar cuál es el proceso; puede usar -j o -l para enumerar el id. de padre ppid . Así que esto te mostrará:

$ ps -axjc | grep mysql

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

Si el ID principal es 1, el demonio de inicio raíz lo habrá lanzado, 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 launchd, entonces probablemente sea LaunchAgents o se encuentre 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

Por lo tanto, el proceso 1 se inicia al iniciar el sistema, y cualquier cosa con el proceso primario de 1 proviene de los demonios del sistema. Cualquier cosa (en este caso) con un proceso principal de 257 se está iniciando desde uno de los LaunchAgents o LoginItems.

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

    
respondido por el AlBlue 04.01.2014 - 16:01
0

Lo siguiente me funcionó con mysql 8.0.12 instalado usando Homebrew en macOS Mojave 10.14.1 :

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
respondido por el Vikram Hosakote 03.12.2018 - 00:52

Lea otras preguntas en las etiquetas