El servidor se cerró sin actualizar el archivo PID (/usr/local/var/mysql/NAME.pid)

He instalado mysql a través de brew. El primer inicio funciona, pero después de reiniciar, recibí el siguiente error:

The server quit without updating PID file (/usr/local/var/mysql/NAME.pid)

empiezo mysql con

sudo mysql.server restart

Si trato de crear un archivo pid por mi cuenta a través de la terminal, se creará, pero después de unos segundos desaparecerá.

sudo touch /usr/local/var/mysql/NAME.pid

¿Alguien tiene una idea?

Respuestas (9)

SÍ.

Siguiendo las advertencias de homebrew, ¿configuró launchd?

To have launchd start mysql at login:
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Bueno, ahora usar mysql.serverno tiene sentido. Básicamente no funciona, porque (desde mi pobre entendimiento) mysqld ahora es administrado por launchd , y es mysqld_safe. No sé si en realidad por eso es diferente de lo que controlas mysql.server.

La solución que se me ocurrió es no usar launchd para mysql de brew. Más bien, solo uso la mysql.serverherramienta para iniciar, detener y reiniciar mysql.

Si quieres seguir mis pasos, esto es lo que debes hacer:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Y cuando quiera iniciar el servidor mysql, use mysql.server start.

Si realmente desea que mysql se inicie en el momento del arranque, puede tomar ese plist y copiarlo, eliminar la línea KeepAlice, reemplazar los valores de cadena debajo ProgramArgumentsde /usr/local/bin/mysql.servery start. Después de eso haz
launchctl load ~/path/to/com.file.plist

Por si sirve de algo, ya no uso mysql.server, en su lugar uso brew servicesel que a su vez manejó launchd.

Lo que funcionó para mí fue sudo chmod -R 777 /usr/local/mysql/que lo instalé desde brew.

gracias me funciono. Me pregunto por qué este permiso no estaba allí para empezar.

prueba esto :

sudo mysqld_safe &

simplemente ejecute mysqld(no ejecute como root) desde su terminal, su servidor mysql se reiniciará y restablecerá todo como se muestra en la imagen:

ingrese la descripción de la imagen aquí

y use:

mysql -u root -h 127.0.0.1

Me había enfrentado al mismo problema y siguiendo estos pasos lo resolví con éxito.

Encuentre el archivo /usr/local/var/mysql/your_computer_name.local.errpara comprender más sobre el error.

Probablemente sea un problema con los permisos:

  1. Encuentra si mysql se está ejecutando y mátalo

    ps -ef | grep mysql
    kill -9 PID
    

    donde PID es el valor de la segunda columna

  2. Comprobar la propiedad de mysql

    ls -laF /usr/local/var/mysql/
    
  3. Si es propiedad de root, cámbielo a mysql o su nombre de usuario

    sudo chown -R mysql /usr/local/var/mysql/
    

sudo chmod -R 777 /usr/local/mysql/ funcionó para mí porque el permiso de archivo no estaba allí

No estoy seguro de por qué, pero eliminar un archivo llamado algo como /usr/local/var/mysql/Andrejs-MacBook-Pro.local.erry ejecutar mysql.server startfuncionó para mí.

Como se detalla aquí .

Esto es lo que tenía que hacer (instalado desde brew):

sudo chmod -R 777 /usr/local/var/mysql/

Para instalaciones convencionales, sin cerveza, como la mía, las soluciones anteriores no funcionaron. La solución vino con la reparación de permisos, utilizando la aplicación Utilities Disk de OS X. Simplemente ejecute la aplicación en su disco, reinicie e intente nuevamente. La única solución que funcionó aquí.