Обновление системы — обязательная часть администрирования VPS. Но иногда после стандартной команды yum upgrade сервер перестаёт корректно работать, и база данных MySQL не запускается. В этой статье разберём, почему это происходит, как исправить проблему и как обновлять CentOS без сбоев.
Почему возникает ошибка
После обновления CentOS утилита yum upgrade может изменить права доступа к системным каталогам, включая /tmp.
В результате MySQL не может удалить старый или создать новый сокет для соединения, и при запуске появляется сообщение:
Another MySQL daemon already running with the same unix socket
Фактически никакого второго демона нет — просто сервер базы данных не имеет прав работать с временной директорией. Это известный баг, который разработчики MySQL отмечали в своих багтреках ещё с ветки CentOS 7, но он периодически повторяется и в более свежих версиях.
Как устранить проблему
Чтобы восстановить работу базы данных, нужно вручную очистить старый сокет и восстановить корректные права на каталог /tmp.
Удалите старый сокет MySQL:
rm -f /var/lib/mysql/mysql.sockУстановите права на временный каталог:
chmod 777 -R /tmpПерезагрузите сервер:
rebootПосле этого MySQL должен запуститься автоматически. Если база данных не стартует, проверьте логи /var/log/mysqld.log или journalctl -xe, чтобы убедиться, что проблема действительно была связана с сокетом.
Как избежать проблемы в будущем
Чтобы обновление VPS проходило без подобных ошибок, системные администраторы рекомендуют:
Перед обновлением создавать бекап базы данных и конфигураций:
mysqldump --all-databases > /root/db_backup.sqlПроверять права на каталог /tmp сразу после обновления:
ls -ld /tmpЕсли права отличаются от drwxrwxrwt, нужно их восстановить.
Периодически очищать временные файлы:
tmpwatch --mtime 24 /tmpИспользовать команду yum update вместо yum upgrade, если вы не уверены в совместимости пакетов. Она обновляет только те компоненты, которые не нарушают зависимости.
Полезные команды
| Задача | Команда | Комментарий |
|---|---|---|
| Проверить статус MySQL | systemctl status mysqld | Показывает, запущен ли сервер базы данных |
| Перезапустить MySQL | systemctl restart mysqld | Применяет изменения и перезапускает службу |
| Проверить сокет | **netstat -lnp | grep mysql** |
| Проверить права каталога /tmp | ls -ld /tmp | Убедиться, что права drwxrwxrwt выставлены корректно |
| Исправить права /tmp | chmod 1777 /tmp | Более безопасный вариант, чем 777 |
Заключение
Ошибка «Another MySQL daemon already running with the same unix socket» после обновления CentOS на VPS — частая и легко устранимая. Её причина в неверных правах на каталог /tmp. Достаточно удалить старый сокет, выставить корректные права и перезагрузить сервер. Чтобы избежать повторения, следите за правами системных каталогов и всегда делайте резервные копии перед обновлением. Это избавит вас от лишних простоев и обеспечит стабильную работу вашего VPS.
Читайте в блоге:
- Как правильно обрабатывать ошибку 404 и не терять посетителей
- Резервное копирование VPS в OpenVZ 7: как сделать бекап и восстановление
- Почему время в MySQL отличается от времени PHP и системы и как это исправить

