вторник, 22 ноября 2011 г.

Описание MySQL Error Codes

Время от времени при работе с базами MySQL приходится сталкиваться с ошибками вида "error: SQLSTATE[HY000] [2003] Can't connect to MySQL server on xxx (4)"

Вот эта самая цифра в скобках - системный код ошибки. Он может указывать на различные проблемы, такие как недостаток свободных портов в системе, ошибки настройки сети и файрвола и т.п. 

И очень здорово, что в unix существует функция, способная вернуть описание этих самых кодов. Ибо без этого бывает сложно догадаться, почему падает база (часто такого рода ошибки проявляются на высоких нагрузках при исчерпании каких-либо системных ресурсов).
Функция perror возвращает описание большинства системных ошибок по их коду. Например:

# perror 28
OS error code  28:  No space left on device

Обращаю внимание на то, что речь идет прежде всего о *NIX системах, хотя и винде эта функция также доступна из командной строки и работает. Для этого необходимо, чтобы в системе был установлен MySQL Server.