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 mysqld
que se está ejecutando (en el monitor de actividad), cerrarlo y luego iniciar MAMP (a través del comando de terminal: /Application/MAMP/bin/startMysql.sh
no funcionará desde ningún otro lugar).
Así que me pregunto cómo puedo desactivar esto para que mysqld
no se ejecute en cada inicio.
ps
para rastrear el proceso principal y ver qué está comenzandomysqld
?Respuestas:
Abra la terminal, luego:
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.
fuente
sudo launchctl list | grep -i mysql
no produce resultados. Tampocosudo launchctl list | grep -i mysqld
i.imgur.com/WZ5EVjw.pngSi 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
launchd
no esté involucrada con el inicio delmysqld
proceso. 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)mysqld
usa 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/hostconfig
para determinar si la configuración de la variable "MYSQLCOM" está establecida en "-YES-". Si es así, se iniciará el script de iniciomysqld
.Debería ser posible deshabilitar el inicio de MySQL modificando la línea
/etc/hostconfig
que especificaMYSQLCOM=-YES-
decirMYSQLCOM=-NO-
(que debería deshabilitar el proceso de inicio en el próximo inicio).Puede finalizar la instancia actualmente en ejecución de
mysqld
ejecutando el comando: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:Nota: también puede tener instalado el Panel de preferencias de MySQL en
/Library/PreferencePanes/MySQL.prefpane
o~/Library/PreferencePanes/MySQL.prefpane
... Ese panel de preferencias también puede eliminarse para 'limpiar' piezas de la antigua instalación de MySQL.fuente
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
tampoco ceda nada: i.imgur.com/ukHtW5x.pngLo siguiente funcionó para mí con mysql
8.0.12
instalado usando Homebrew enmacOS Mojave 10.14.1
:fuente
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 mysqld
para 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.fuente
mdfind mysqld
no 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)Comience por descubrir cuál es el proceso principal que inició su mysql. Desde la Terminal, ejecute un
ps
comando para averiguar cuál es el proceso; puede usar-j
o-l
para enumerar la identificación principalppid
. Entonces esto te mostrará: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.
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.
fuente