Recibo este error cuando intento iniciar sesión en MySQL desde la línea de comandos:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Creo que esto significa que MySQL aún no se ha iniciado. Entonces trato de comenzarlo:
sudo /etc/init.d/mysql start
y recibo este mensaje:
* Starting MySQL database server mysqld [fail]
¿Dónde miro / qué hago para que MySQL comience? Estoy ejecutando Ubuntu 8.04 e instalé MySQL a través de apt-get. He podido comenzar y usarlo un par de veces, así que no sé por qué dejó de funcionar.
Actualización: cuando ejecuto sudo /etc/init.d/mysql status recibo el mensaje:
* MySQL is stopped.
Actualización n. ° 2: Mis archivos de registro (/var/log/mysql.log & /var/log/mysql.err) están vacíos (si estos son los correctos)
Respuestas:
En Ubuntu 12.04 tuve el mismo problema después de cambiar los tamaños de búfer en el archivo /etc/mysql/my.cnf, creo que me dejé llevar un poco. De todos modos, después de intentar cambiarlos a la configuración predeterminada, MySQL aún no se iniciará.
Intenté varios métodos diferentes para resolverlo, noté que faltaba /var/run/mysql/mysql.sock. Esto podría ser un problema, por lo que puede verificar allí y, si falta, puede reemplazarlo haciendo lo siguiente:
¡Esto NO me solucionó el problema! Pero puede que para algunos.
Lo que tuve que hacer fue reinstalar completamente MySQL, para hacerlo necesitarás usar el comando sudo. Los pasos para eliminar y reinstalar completamente MySQL son los siguientes:
Eliminar MySQL
Opcionalmente, puede usar aptitude, reemplazando apt-get --purge con aptitude
Limpiar
Eliminar el directorio MySQL
Instalar MySQL
MySQL ahora debería estar ejecutándose, puede verificar esto haciendo lo siguiente:
Debería ver
Espero que esto ayude, y pensé que podría agregar después de hacer esto todas mis bases de datos y tablas donde todavía estén disponibles, sin embargo, tuve que recrear los usuarios y las contraseñas para esas bases de datos.
Nota: Si tenía la extensión mysql para php, necesitará reinstalar esto también.
fuente
sudo touch /var/run/mysqld/mysqld.sock
y lo descubrí desde el final de/var/log/syslog
(por ejemplo, cambiar a mysqld)/var/run/mysqld
o/var/run/mysql
?ADVERTENCIA: Esto es peligroso, su mysql NO estará seguro y cualquiera podrá conectar, editar, etc. sus tablas, no deje su servidor funcionando con este comando.
Intenta iniciarlo en modo seguro:
/usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables
Si esto funciona, puede haber problemas con su información_esquema o su (s) tabla (s) mysql. Si no funciona, algo está mal con su instalación.
fuente
sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
Verifique sus archivos de registro como en las otras respuestas. Además, verifique que tenga suficiente (o cualquier espacio en disco). MySQL puede comportarse de esta manera en una partición vacía.
df -h
Si no es eso, consulte los documentos de MySQL sobre la depuración de un servidor . Su
myisamchk
(si está utilizando MyISAM) es particularmente útil.fuente
También tuve este problema recientemente después de actualizar ubuntu. Aún no estoy seguro de cuál es exactamente el problema. Sin embargo, un error que funcionó por el momento para ejecutar mysql fue:
Eso hace que funcione, lo que indica que apparmor detuvo la ejecución de mysql y explica por qué los registros probablemente también estén vacíos: no se permitió ejecutar mysql.
Sigue siendo un problema extraño, ya que hasta ahora no hay "quejas" de esto
/var/log/apparmor
, y la única entrada de auditoría en kern.log es cambiar el perfil al modo de quejas.Tenga en cuenta que al hacer esto también agregué un
/etc/apparmor.d/local/usr.sbin.mysql
archivo (vacío) ya que el aa-complain ordenó quejarse de no encontrar este archivo.fuente
Tuve el mismo problema con mi gota de Océano Digital de 512 MB.
Resultó que se debe a memoria insuficiente.
Una solución inmediata es reiniciar otros servicios para liberar memoria, por ejemplo.
Entonces, con suerte, con suficiente memoria, debería poder reiniciar mysql
La solución a largo plazo es obtener más RAM o crear memoria de intercambio .
fuente
Echa un vistazo a tus archivos de registro. Al menos en Debian, obtienes registros de mysql *
/var/log
.fuente
Tenía el mismo problema, resulta que la solución me estaba mirando a la cara. La unidad estaba llena. No obtienes registros porque no hay dónde escribirlos .....
fuente
El mismo problema me atormentó por siglos en un Ubuntu 12.04 Digital Ocean VPS con mysql 5.6 instalado desde un PPA. Los síntomas eran que el archivo mysql.sock
/var/run/mysqld/mysql.sock
se eliminaría pero nunca se volvería a crear, por lo que tenía que ejecutar manualmente los siguientes comandos cada vez que se actualizaba mysql o se reiniciaba el servidor:Esto fue de la respuesta de Kyle C (excepto con mysqld en lugar de mysql). Al final bajé a mysql 5.5, que viene cuando normalmente realizarías un
sudo apt-get install mysql-server
comando. Sin embargo, no fue sencillo, así que esto es lo que tuve que hacer:Esperemos que esto ayude a alguien que tenga el mismo dolor.
fuente
Supongo que esto podría ayudar a otros ... así que aquí está.
Quería migrar mi mysql 5.5 (el valor predeterminado de ubuntu) al nuevo 5.7
(quería jugar con el nuevo tipo JSON nativo)
Seguí las instrucciones para instalar la última versión ...
pero MySQL no quería comenzar.
Pasé bastante tiempo buscando y luego encontré esta línea en
/var/log/mysql/errors.log
:unknown variable 'key_buffer=16M'
y eso es algo que se establece en
/etc/mysql/my.cnf
que, durante la actualización, elegí mantener.Entonces, bastante fácil después de eso:
reemplazó mi
my.cnf
con lamy.cnf.dpkg-dist
versión ubicada en el mismo directorio ...Luego tuve que correr
sudo mysql_upgrade -u root -p sudo service mysql restart
y ahora MySQL vuelve a funcionar
fuente
Encontró otra variación de lo que puede estar mal. Moví el directorio de datos, y resultó que olvidé mostrar el directorio para el usuario de mysql, que también falla sin ningún tipo de salida. Obviamente mal en retrospectiva, pero la falta de mensaje de error hace que cada problema trivial sea difícil de encontrar.
fuente