Después de instalar MySQL a través de Brew, aparece el error: el servidor se cierra sin actualizar el archivo PID


88

Ok, he buscado por todas partes y he pasado bastante tiempo instalando, desinstalando, probando varias opciones pero sin éxito.

Estoy en Mac OS X Lion (10.7.3) y estoy intentando configurar un Python, MySQL.

Instalé Python y MySQL con éxito a través de HomeBrew. Python funciona muy bien.

Después de la instalación de MySQL, seguí los primeros 2 pasos: desarmar y los mysql_install_dbcomandos.

Ahora, cuando intento iniciar mysql "mysql.server start", aparece el siguiente error

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar es mi nombre de usuario en mi máquina.

Respuestas:


80

EDITAR 18/09/2012: Como señaló Kane , asegúrese de que la mysqlbase de datos esté configurada correctamente antes de hacer cualquier otra cosa. Consulte “ Error de PID al iniciar mysql.server? " para más información.

La respuesta original se guardó por el bien de la historia: lo más probable es que sea un problema de permisos. Comprobar /usr/local/var/mysql/*.err. El mío dijo:

120314 16:30:14  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

También tuve que hacer esto:

sudo chown _mysql /usr/local/var/mysql/*

65
sudo chown -R _mysql:_mysql /usr/local/var/mysql
Resolví

1
Recibo el mismo error, pero no tengo la carpeta / usr / local / var / mysql :( También estoy usando homebrew.
Nathan Bashaw

2
Vea los comentarios de brew info mysqlo esta pregunta para la solución correcta
Kane

4
sudo chmod ugo + w / tmp fue mi solución.
Ben Racicot

2
el mío se resolvió con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

Descubrí que era un problema de permisos con la mysqlcarpeta.

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

me lo resolvió.


18
no hay necesidad de hacer este 777
JamesHalsall

2
También estuve buscando durante mucho tiempo y esto es lo que me solucionó.
mordido el

6
Tenga en cuenta que no recomiendo configurar nada en 777 en un entorno de producción. Esto debe ser solo en una instalación local. También lo volvería a cambiar a 755 como mínimo.
mikoop

1
Si ve un error en el inicio de mysql Advertencia: el archivo de configuración de escritura mundial '/var/lib/mysql/none-dev/my.cnf' se ignora Entonces probablemente querrá chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
el mío se resolvió con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

Terminé con la reinstalación completa de mysql, y finalmente funcionó.

ADVERTENCIA Esto eliminará todas sus bases de datos, así que asegúrese de guardar los volcados primero.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
Intenté cambiar los permisos de todas las formas posibles sin éxito. Terminé siguiendo estas instrucciones y ... éxito :)
kartsims

Esta es la ÚNICA solución que encontré. Este debería ser el número uno
Dan

Gracias, esto es lo único que funcionó para mí. Aunque no tuve que corrermysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Iniciando MySQL ... ¡ERROR! El servidor se cerró sin actualizar el archivo PID (<ruta> -.lightspeed.irvnca.sbcglobal.net.pid). Recibiendo este error
Unnikrishnan

1
Solo edición casera
McGrady

31

Tuve este problema en mac 10.10.5 Yosemite

Que hice para solucionar esto

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


¡Salud! ¡De esta manera es la más simple y me salvó el día!
iplus26

Perfecto, me salvaste el día;)
Emy Stats

Suspiro. Después de probar todas las soluciones en Internet durante 2 horas, ¡esto es lo que finalmente lo solucionó! ¡Un buen reinicio! :)
SexyBeast

18

Noviembre de 2014: si recibe este error en MySQL 5.6.x en Mac OS X Mavericks o Yosemite y desea usar MySQL con PHP localmente (/tmp/mysql.sock es donde PHP PDO espera encontrar el archivo sock), esto es lo que lo arregló para mí:

1) Descomente las líneas predeterminadas del archivo de configuración homebrew y edite como se muestra a continuación

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME es lo que tiene en Preferencias del sistema -> Red como la identificación única de su computadora en la red.

2) Establezca permisos en todos los archivos del directorio de datos mysql. Todos eran propiedad de [my_username]. MySQL es muy exigente con esto y se niega a crear el archivo pid a menos que él (el usuario _mysql) sea el propietario del directorio.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Inicie MySQL usando el script bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Espero que ayude. Si lo anterior no funciona para usted, intente ejecutar el binario mysqld_safe manualmente en el directorio Cellar / mysql / VERSION_ / bin / y verifique cuáles son las configuraciones (si se ejecuta)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Si eso funciona, puedes

ps aux | grep mysql 

y ver algo como

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

No estoy seguro de por qué funcionó para mí, pero le muestra de dónde obtuve las opciones del archivo de configuración my.cnf. También puede utilizar las opciones de la línea de comandos para intentar solucionar problemas al iniciar mysqld manualmente.

Si ejecuta manage to run MySQL server usando mysqld_safe, es posible que deba hacer esto para apagarlo antes de probar el helper de bash mysql.server. Resista la tentación de matar -9 [PID] porque puede dañar sus datos.

mysqladmin -uroot shutdown

¡Buena suerte!


gracias - el mío se resolvió con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

Tuve el mismo problema en OS X El Capitan, aquí está la secuencia de comandos del terminal que lo solucionó.

Elimine los archivos de error (tendrá que cambiar la ruta según su configuración)

sudo rm /usr/local/mysql/data/*.err

Busque la información del proceso mysql que aún se está ejecutando y elimínelo:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Ahora reinicie MySQL:

/usr/local/mysql/support-files/mysql.server start

10

Esto funcionó para mí:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

Esto resolvió mi problema en MAC os 10.11.3 (después de cambiar el modo a 777 del directorio mysql)
Ratha

Esto significa lectura, escritura, ejecución o derechos completos para todos los usuarios de esa carpeta y (-R) todos los archivos y carpetas de esa carpeta. Para obtener una explicación detallada, consulte el siguiente enlace: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese

4

Esto funcionó para mí en 10.12.2:

$ rm /usr/local/var/mysql/*.err

entonces

$ brew services restart mysql

3

Si mal no recuerdo, es un problema de permisos. Intente 'tocar' y 'chmod' el archivo pid o la carpeta en la que se encuentra el archivo.


No Incluso probé chmod 777 para ver si eso resuelve el problema, pero nada. Mismo error.
Brajeshwar

¿Intentó hacer chmod 777 en el directorio mysql y eliminar el archivo pid y reiniciar MySQL?
LonnyLot

3

Mi problema fue que inicié el servidor como sudo una vez y luego intenté reiniciar como usuario local.

Aquí mysql no pudo escribir en el archivo '.err' propiedad de root. Tuve que eliminar ese archivo y reiniciar el servidor:

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

Tengo un problema similar con MySQL en una Mac (Mac Os X no pudo iniciar MySQL Server. Razón: 255 y también "¡ERROR! El servidor se cerró sin actualizar el archivo PID"). Después de un largo proceso de prueba y error, finalmente para restaurar los permisos del archivo, solo hice eso:

inicie Disk Utilities.app,
elija mi unidad en el panel izquierdo,
haga clic en el botón "Reparar permisos de disco".

Esto funcionó para mi. Esperando que esto pueda ayudar a alguien más.


1

Para mí funcionó con:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

1

Lo que funcionó para mí fue:

  1. Vaya a su directorio de instalación de mysql
  2. sudo chmod -R 777 data
  3. Luego retrocede un directorio
  4. cd support-files/
  5. sudo ./mysql.server start

Después de eso, el servidor comenzó a funcionar.

Pero el problema con este método es que tengo que repetir esto cada vez que quiero iniciar mysql ahora. No sé por qué comenzó a comportarse así de repente.


1

Busque el archivo usr / local / var / mysql / your_computer_name.local.err y comprenda más información sobre el error

Ubicación: /usr/local/var/mysql/your_computer_name.local.err

Probablemente sea un problema con los permisos

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

ps -ef | grep mysql

matar -9 PID

donde PID es el valor de la segunda columna 2. verificar la propiedad de mysql

ls -laF / usr / local / var / mysql /

if it is owned by root, change it mysql or your user name

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


1

Prueba esto (OSX)

Paso 1: ps -aux | grep mysql

Luego mata el número PID de 4 dígitos

Paso 2: kill 1965

Paso 3: mysql.server start

O tiene dificultades para ubicar esos números PID, intente esto a continuación

Paso 1 de nuevo: ps -aux | grep mysql

Paso 2 de nuevo: killall

Paso 3 de nuevo: mysql.server start


1

Por favor revise el registro, obtendrá información más detallada.

Utilice el siguiente comando para seguir el registro de errores

tail -100 /usr/local/var/mysql/<user_name>.local.err

Para mí, falta uno de los directorios, una vez creado, el servidor se ha iniciado.


1

La conclusión clave es verificar el archivo .err, que de forma predeterminada en Mac OSX está en /usr/local/var/mysql.

Ese registro archivado me reveló que tenía que eliminar los siguientes archivos:

ibdata1
ib_logfile0
ib_logfile1

Ejecutar MySQL con mysql.startfuncionó con éxito después de eso. Tenga en cuenta que la eliminación de esos archivos probablemente provocará la pérdida de datos.


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

funciona para mi.


0

Tuve el mismo problema:

Pero la situación era, cada vez que intento entrar:

/usr/local/mysql/support-files/mysql.server start

localhost.pidse crea un archivo con el nombre en lugar del iMax0.local.pidque se indicó en el error:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

La solución que me funciona fue copiarlo localhost.pidy cambiarle el nombre a iMax0.local.pid.


0

Mi solución en OSX El Capitan fue:

sudo chmod ugo+w /tmp

Se rompió de repente.

El error fue:

ERROR! The server quit without updating PID file

y el registro mostró:

Can't start server : Bind on unix socket: Permission denied

También puede ser útil tener en cuenta que en OSX no hay ningún my.cnfarchivo de forma predeterminada y no es necesario de forma predeterminada, lo cual no sabía. ¡Buena suerte!



0

Tuve un problema similar. Pero los siguientes comandos me salvaron.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Este es un problema de permisos de archivos. Verifique los permisos del disco y repare.

Osx => Cmd + Espacio => Utilidad de disco => Verificar permisos de disco.

Verifique completado después de Reparar permisos de disco. El comando de inicio mysql.server funciona con éxito.


Esto funcionó para mí. Intente esto antes de hacer cualquier otra cosa.
kamlesh

0

Ninguna de las respuestas funcionó para mí. Sin embargo, simplemente lo hice sudo mysql.server starty funcionó muy bien.

Además, para mí, NO mostró problemas de permisos en el archivo * .err.


0

Tuve este problema en Linux, pero la causa es relevante para cualquier instalación de mysql. En mi caso, el servidor fallaba antes de que se completara el inicio y se actualizara el archivo pid. Los mensajes de error se vieron al iniciar mysqld directamente en lugar de a través del "service mysql start".

En mi caso, la causa fue que la partición donde se ubicaban los archivos de registro estaba llena. La eliminación de los archivos de registro permitió que mysql comenzara de nuevo. Para probar este problema, vaya a la ubicación de sus registros de actividad de mysql y hágalo df ..


0

Si ha actualizado su instalación de mysql a 8.x, compruebe si su versión anterior es compatible con la actualización .

Si no, mysql no funcionará. Desinstale su mysql junto con todos los archivos de configuración en /usr/local/var/mysql(elimine toda la carpeta). Reinstale mysql.

NOTA: la reinstalación puede provocar la pérdida de datos.


0

todas las soluciones anteriores no funcionan para mí. pero me dan algunas pistas para corregir este error.

mysql.server start ---- error El servidor se cerró sin actualizar el archivo PID

Instalé mysql@5.7 en mi macbook mojave con homebrew

brew instalar mysql@5.7

registro de errores de mysql ubicado en /usr/local/var/mysql/IU.lan.err, hay una línea en él: No se pueden abrir y bloquear tablas de privilegios: la tabla 'mysql.user' no existe

después de probar muchas publicaciones en el motor de búsqueda de goole, recurrí a baidu https://blog.csdn.net/xhool/article/details/52398042 inspirado en esta publicación, encontré la solución:

rm / usr / local / var / mysql / *

mysqld --inicializar

en bash se mostrará una contraseña aleatoria para el usuario root. pero el comando mysql -uroot -p [theRandomPassword] no puede funcionar. Así que tengo que restablecer la contraseña. crea un archivo de inicio con contenido como este

ESTABLECER CONTRASEÑA PARA 'root' @ 'localhost' = CONTRASEÑA ('MyNewPass');

colóquelo en cualquier directorio fácil de encontrar, como Escritorio

mysqld --init-file = [YourInitFile] &

muchos registros impresos en su pantalla.

mysql -uroot -pMyNewPass

¡disfruta de tu mysql de alta versión!


0

Me pasó porque en realidad estaba cambiando de MariaDB a Mysql. Volver a MariaDB resolvió esto.

Supongo que la base de datos existente no era compatible.


Este también fue mi problema, estaba cambiando de MariaDB a MySQL. Pero volver a MariaDB no fue una solución aceptable. Eliminé el nuevo mysql y brew uninstall mysql@8.0luego eliminé la antigua carpeta mysql creada por MariaDB sudo rm -rf /usr/local/var/mysql(esto obviamente eliminará sus bases de datos). Entonces brew install mysql@8.0y mysql.server startya funciona.
Antriver

0

Resuelto esto usando sudo chown -R _mysql:_mysql /usr/local/var/mysql Gracias a Matteo Alessani


0

Es posible que este error se esté mostrando realmente porque mysql ya está iniciado. Intente ver el estado actual mediante:

mysql.server status

Siempre he resuelto esto eliminando los archivos de registro, pero psde hecho mostré los procesos de mysql. ¡Maté todo, volví a ejecutar mysql.server restarty funcionó!
COMER
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.