No se puede iniciar MySQL

He utilizado este command de shell para reparar todas las bases de datos

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases 

y después de eso reinicié el server

cuando volvió vivo otra vez intenté abrir mi foro del vBulletin pero recived el post de error de la database.

y también intentó abrir phpMyAdmin pero recibí este error:

 #2002 - The server is not responding (or the local MySQL server's socket is not correctly configunetworking). 

Comprobé la list de services y descubrí que el service MySQL no aparece en la list, así que intenté iniciarlo desde shell. Recibí este error:

 Starting MySQL.Manager of pid-file quit without updating fi[FAILED] 

¿alguien podría ayudarme en eso?

gracias por adelantado.


actualizar

Encontré estas líneas en el file de logging

 101101 01:36:01 mysqld started 101101 1:36:01 [Warning] Asked for 196608 thread stack, but got 126976 101101 1:36:01 [ERROR] /usr/sbin/mysqld: Table './mysql/user' is marked as crashed and last (automatic?) repair failed 101101 1:36:01 [ERROR] /usr/sbin/mysqld: Table './mysql/user' is marked as crashed and last (automatic?) repair failed 101101 1:36:01 [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/user' is marked as crashed and last (automatic?) repair failed 101101 01:36:01 mysqld ended 

Que debería hacer entonces ?

Esto ocurre cuando mysqld no está correctamente apagado. Básicamente, existe el file pid – un file que contiene el identificador de process del process en ejecución – para detectar si el process se está ejecutando o no. Cuando el sistema está fuera de control – es decir, encontró el pid pero no puede encontrar el process, lo que significa que el server no se detuvo correctamente – requiere una intervención manual.

Simplemente rm /var/run/mysqld.pid y deberías estar bien.

Andrés

UPDATE: Basado en sus files de logging recientes (y el hecho de que las reparaciones automáticas fallaron), aquí hay un gran post sobre methods de reparación adicionales . Además, asegúrese de que tiene suficiente espacio en disco en el server.

Intente iniciar mysqld con –skip-grant-tables para que no intente cargar la tabla de usuario (se estrelló).

 /etc/init.d/mysqld start --skip-grant-tables 

luego iniciar session en mysql

 mysql 

a continuación, intente el command de reparación en la tabla de usuario

 use mysql; REPAIR TABLE user; 

No estoy seguro de que la syntax sea 100% correcta.

Creo que necesitas mysqlrepair:

 mysqlrepair -r tablename 

(Acabo de darme count de que esto es lo mismo que mysqlcheck.)

Lo que necesita es la reparación explícita en lugar de autorepair.

Problema resuelto 🙂

Gracias cstamas, Resorath, Andrew y Gennady, gracias a todos por su ayuda 🙂

He intentado esto de shell, y funcionó muy bien:

 service mysql stop mkdir /home/tmp cd /var/lib/mysql myisamchk --tmpdir=/home/tmp -r */*.MYI service mysql start