Блог
Назад к статьям

MySQL не запускается в BitrixVM: ошибка Unix socket lock file is empty

Разбираем ошибку Unix socket lock file is empty в BitrixVM и CentOS. Диагностика MySQL, анализ логов, поиск причины и восстановление запуска сервиса без потери данных.

17 июня 2026 г.
507
DevOpsBackendBlogBitrixdevopsbashserverdatabasemysql
MySQL не запускается в BitrixVM: ошибка Unix socket lock file is empty

Недавно столкнулся с интересной проблемой на сервере с BitrixVM и Percona Server 5.7. На первый взгляд MySQL отказывался запускаться без каких-либо очевидных причин, а systemd выводил довольно бесполезное сообщение:

Initialization of mysqld failed: 0

Разберёмся, как диагностировать подобную проблему и почему в итоге помогло удаление файлов mysqld.sock и mysqld.sock.lock.

Симптомы

При попытке запуска MySQL сервис постоянно падал:

systemctl restart mysqld

Проверка статуса показывала:

systemctl status mysqld

Результат:

Initialization of mysqld failed: 0

При этом в системном журнале не было подробностей, поэтому пришлось смотреть лог MySQL.

Анализ логов

Открываем журнал ошибок:

tail -200 /var/log/mysql/error.log

В логе обнаружилась настоящая причина:

[ERROR] Unix socket lock file is empty /var/lib/mysqld/mysqld.sock.lock.
[ERROR] Unable to setup unix socket lock file.
[ERROR] Aborting

Самое интересное — InnoDB успешно проходил инициализацию:

InnoDB: Percona XtraDB started

То есть проблема была не в таблицах, не в повреждении базы данных и не в InnoDB.

Что такое mysqld.sock и mysqld.sock.lock

MySQL использует Unix Socket для локальных подключений.

На сервере обычно присутствуют файлы:

/var/lib/mysqld/mysqld.sock
/var/lib/mysqld/mysqld.sock.lock

Это служебные файлы.

Они не содержат данные базы и создаются автоматически при запуске сервера MySQL.

Если сервис завершился аварийно или файловая система была переполнена, эти файлы могут остаться в некорректном состоянии.

Дополнительная проблема

Параллельно обнаружилось, что корневой раздел практически полностью заполнен:

df -h

Результат:

/dev/vda1 158G 156G 2.3G 99%

Недостаток свободного места часто становится причиной подобных ошибок.

Решение

Сначала убедился, что процесс MySQL полностью остановлен:

pkill mysqld

После этого удалил служебные файлы:

rm -f /var/lib/mysqld/mysqld.sock
rm -f /var/lib/mysqld/mysqld.sock.lock

Запустил сервис заново:

systemctl start mysqld

После очистки повреждённого lock-файла сервер успешно стартовал.

Важно

Удаление файлов:

mysqld.sock
mysqld.sock.lock

не приводит к потере данных.

Это временные служебные файлы, которые MySQL создаёт автоматически при запуске.

Однако выполнять удаление следует только после полной остановки сервиса.

Что проверить дополнительно

Если проблема повторяется:

Свободное место

df -h

Размер каталогов

du -xh / --max-depth=1 | sort -hr

Логи MySQL

tail -200 /var/log/mysql/error.log

Активные процессы

pgrep -a mysqld

Вывод

Если MySQL в BitrixVM или CentOS неожиданно перестал запускаться, а в логах присутствует ошибка:

Unix socket lock file is empty

не спешите восстанавливать базы или искать повреждение InnoDB.

В большинстве случаев проблема связана с повреждённым socket lock-файлом или нехваткой места на диске. Проверка логов и очистка служебных файлов позволяют восстановить работу сервиса за несколько минут.

MySQL не запускается в BitrixVM: ошибка Unix socket lock file is empty