Если MySQL сервер перестал работать, но в статусе показано что он запущен, но при этом каждый раз меняется pid, то проблема скорее всего в таблицах innodb. В логах (/var/log/mysqld.log) запуск сервера останавливается на строчке:
InnoDB: Waiting for the background threads to start
Для исправления ошибки останавливаем MySQL:
service mysqld stop
Если сервер не останавливается, но при этом пишет остановлен, то убиваем процесс и удаляем блокировку:
killall mysqld rm /var/lock/subsys/mysqld
Добавляем в секции [mysqld] файла /etc/my.cnf следующие строчки
innodb_force_recovery = 1 innodb_purge_threads=0 port = 3307
Запускаем MySQL. При этом нужно проверить, не меняется ли PID. Для этого последнюю команду запускаем с небольшим интервалом несколько раз:
service mysqld start service mysqld status
Запускаем проверку баз данных, вводим пароль root пользователя:
mysqlcheck -rq mysql -p
При необходимости обновляем базы:
mysql_upgrade -p
После этого удаляем или комментируем добавленные нами строчки в файле /etc/my.cnf и перезапускаем MySQL:
service mysqld restart