Причина ошибки Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) in somescript.php заключается в том что php-скрипт по какой-то причине не может соединиться с базой данных через сокет /var/lib/mysql/mysql.sock.

Популярные причины и решения «Can’t connect to local MySQL server through socket»

Сразу предупреждаю — список неполный! Если обнаружил что-то новенькое — пиши в комментарии! 

Первая и наиболее частая причина на shared-хостингах — неправильно указан адрес сервера. Решение: в конфигурационных файлах (или самом проблемном скрипте) зачастую вместо ‘localhost’ нужно указать адрес (в виде url или IP-неважно) сервера баз данных. 

Вторая по частоте для выделенных серверов и VPS/VDS, где сервер MySQL размещен на той же машине что и сам скрипт — по какой-то причине MySQL не запущен, или же проблемы с самим сокетом. 

Решение

  1. Проверить, есть ли на диске свободное место по вот этой инструкции. Если свободного места или inode нет — обязательно освободить! Так как без этого MySQL даже запустить — невозможно. 
  2. Проверить состояние мускуля и перезапустить его вот так
  3. Если возникла ошибка «Another MySQL daemon already running with the same unix socket» — действовать по инструкции.

Если ошибки возникают часто, а MySQL оказывается выключен/неработоспособен — нужно проводить диагностику, отталкиваясь от конкретной ошибки. Возможно — доустановить на сервер какую-то систему мониторинга для того чтобы иметь понимание — что именно на сервере происходит в момент возникновения проблемы.