MySQL протокол
Сижу, разбираюсь с протоколом MySQL по forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
итак, начинаем. Коннектимся, в случае доступности сервера, как и положено, получаем
34 00 00 00 0A 34 2E 31 2E 32 32 00…
( 34 00 00) первые 3 байта — длина пакета
( 00 ) четвертый байт — номер пакета.
далее — версия сервера и прочая инфа по конфигу сервера.(строка с нулём на конце)
НО если вдруг превышен лимит коннектов к серверу — мы получаем от него ошибку «Host '***' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts', то есть такой пакет:
7C 00 00 00 FF 69 04 48 6F 73 74 20
тут так же, 4 байта — заголовок (длина пакета + номер пакета), но что дальше за три байта?
Как именно отделять пакеты с подобными ошибками от нормальных? откуда эти байты „FF 69 04“? где вообще можно найти полную инфу по всем возможным вариантам ответов сервера? Есть ли opensource проекты реализации mysql протокола? Или может я что-то пропустил когда читал по ссылке выше? Помогите пожалуйста.
p.s. да, я изобретаю велосипед, но он мне сейчас очень нужен :)
итак, начинаем. Коннектимся, в случае доступности сервера, как и положено, получаем
34 00 00 00 0A 34 2E 31 2E 32 32 00…
( 34 00 00) первые 3 байта — длина пакета
( 00 ) четвертый байт — номер пакета.
далее — версия сервера и прочая инфа по конфигу сервера.(строка с нулём на конце)
НО если вдруг превышен лимит коннектов к серверу — мы получаем от него ошибку «Host '***' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts', то есть такой пакет:
7C 00 00 00 FF 69 04 48 6F 73 74 20
тут так же, 4 байта — заголовок (длина пакета + номер пакета), но что дальше за три байта?
Как именно отделять пакеты с подобными ошибками от нормальных? откуда эти байты „FF 69 04“? где вообще можно найти полную инфу по всем возможным вариантам ответов сервера? Есть ли opensource проекты реализации mysql протокола? Или может я что-то пропустил когда читал по ссылке выше? Помогите пожалуйста.
p.s. да, я изобретаю велосипед, но он мне сейчас очень нужен :)
Похожие публикации
Российский хостинг с Python и RoR
Медленный UPDATE по Primary Key MySQL/MariaDB?
MySQL грузит все ядра проца. Глюк?
mysqldump
Как сделать бэкап дампа на удаленный сервер?
Нет комментариев