Тупой вопрос - клиент 4.x и сервер 5.x совместимы по протоколу между собой или нет? В документации об этом где-то сказано? Или всем нормальным людям это и так должно быть понятно?
Могу бездоказательно заявить, что если новым клиентом ты к старому серверу и подцепишься, то наоборот - вряд ли. Во всяком случае проблемы такие у клиентов были.
Насколько я понимаю, никаких официальных гарантий по совместимости протоколов нет и не будет, он, что называется, subject to change, и тебе положено пользовать одинаковые версии клиента и сервера.
Что-то ты гонишь, расширение php-mysql вообще собирается с установленной в системе libmysqlclient, и сдаётся мне, что это неспроста, и она действительно используется. :)
Точно. Вот, что я имел в виду:
http://ee2.php.net/manual/ru/ref.mysql.php
Расширение работает с MySQL версий >= 4.1.0, но не эксплуатирует всю возможную функциональность этих версий. Для этого используйте MySQLi.
Ну, а в какой момент он subject to change? Скажем, изменение минорной версии может приводить к несовместимости протокола? Это как-то ведь должно оговариваться.
>>тебе положено пользовать одинаковые версии клиента и сервера.
Хорошо бы, только если сервер всего один, то клиентов много. Теперь каждый раз при апгрейде сервера придётся менять также всех клиентов :(
Ага, вроде бы стало понятно.
Я ловил отлуп с ошибкой:
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
при коннекте с клиента 4.0.15 на сервер 5.0.15. Оказалось, что где-то между 4.0-4.1 поменялся алгоритм хеширования паролей, поэтому всё, что больше 4.1, ругается на все то, что меньше. Вроде бы, больше несовместимостей быть не должно (в смысле - в общем подмножестве команд).