@Angelxalfa

Почему не запускается MySQL?

Доброго времени суток! Помогите пожалуйста разобраться.
Использую VPS хостинг.
Внезапно перестал работать MysQL сервер на хостинге VPS.
Пару часов назад все было ок. Ни какие работы не выполнялись.
На сервере крутятся три сайта. ОЧЕНЬ НУЖНО все как можно быстрее восстановить работоспособность! В поддержку написал - пока молчат....

Пробовал перезагрузить сервер. При запуске Msql:
mysql daemon failed to start
В логах mysqld.log

Скачать файлом

d01dc121881242729f84f05f3362da5e.png
В логах mysql-errors.log

/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
/usr/libexec/mysqld, Version: 5.1.52-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument


Заранее спасибо!
  • Вопрос задан
  • 1218 просмотров
Решения вопроса 1
landergate
@landergate
IT-шный jack-of-all-trades
Прежде всего, сделайте сейчас копию файлов баз данных куда-нибудь.
Выключите приложение, подключающееся к вашей базе.

Попробуйте (имея копию файлов) запустить MySQL в режиме innodb_force_recovery, чтобы он всё-таки аварийно (ничего не проверяя) запустился, и вы могли снять дамп данных.
Добавьте в my.cnf в секцию [mysqld]:
innodb_force_recovery = 1
и запустите MySQL.

Если не помогло - читайте, что делает следующая цифра и ставьте её. Почитать про каждый уровень можно здесь:
dev.mysql.com/doc/refman/5.7/en/forcing-innodb-rec...
Имейте ввиду, что поднимать уровень нужно только при наличии файловой копии баз данных, поскольку они почти наверняка могут повредить данные.

На всякий случай, добавьте в ту же секцию:
innodb_purge_threads=0

Если MySQL запустился, снимайте дамп всех критичных таблиц.
Чтобы узнать, какая именно таблица стопила весь процесс, запустите mysqlcheck --all-databases. Те таблицы, что напишут "Corrupted", надо дампнуть и после всей этой канители переразвернуть с дампа заново.

Не оставляйте этот режим на продакшене.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
urtow
@urtow
*nix, python, QA, bagpipe, folk music
Проверь место на диске на VPS, команда:

df -h

так де проверь количество inodes

df -ih

Если что-то забито на 100% - надо чистить место. Если нет места - скорее всего какой-то лог забил весь диск, зайди в /var/log и посмотри какой файл больше всего. Если нет inodes (вторая команда показала что какой-то раздел забит на 100%) - попробуй почистить файлы сессий. По умолчанию php не чистит их и они забивают диск.

Это самая частая проблема с запуском Mysql на VPS.
Ответ написан
kiberspy
@kiberspy
Судя по всему, какая-то транзакция завершилась некорректно... самое быстрое решение проблемы - восстановить БД из бекапа (если он конечно есть)! Кроме того в самом логе указано - выключить логирование, и затем повторно включить его...
Учитывая что это VPS-хостинг - думаю, ситуацию поможет разрешить хостер! Т.к. налицо есть подвисший процесс/демон MySQL (невозможно достучаться до сокета MySQL)
Одним из вариантов проверить: отдетачить сбойную базу и подсунуть заведомо исправную или создать "пустышку"...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы