В версии 5.0.3 сильно переделан метод выполнения handshake при подключении, ошибка при заполнении m_sAuthData.
Раньше было так
const char sHandshake4[] = "\x15" // length of auth-plugin-data - 21 bytes
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" // unuzed 10 bytes
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x00" // auth-plugin-data-part-2 (12 bytes + zero) (for auth, 4.1+)
"mysql_native_password"; // auth plugin name. try to remove last z byte here...
...
tOut.SendBytes ( sHandshake4, sizeof ( sHandshake4 ) ); // incl. z-terminator
В новой версии стало
tOut.SendBytes ( dFiller, sizeof ( dFiller ) );
tOut.SendBytes ( m_sAuthData + 8, AUTH_DATA_LEN - 8 );
tOut.SendBytes ( m_sAuthPluginName );
Проблема в том, что m_sAuthData не заканчивается теперь на 0x0, что приводит к проблеме подключения, например через .net connector пишется
Authentication method '' not supported by any of the available plugins
Скрин
Можете поправить? Спасибо.