Das Problem hier war auf zwei gleichzeitige Probleme zurückzuführen.
- Auf dem Remote-Server wurde die globale Einstellung OLD_PASSWORDS auf 1 gesetzt – was bedeutet, dass Passwörter in der Methode vor 4.1 gehasht wurden.
- der Root-Account war trotz globaler Einstellung im neueren Hashing-Verfahren kodiert worden (vermutlich vor dem Setzen dieses Parameters eingetragen), d.h. es wurde über die ODBC-Verbindung Zugriff gewährt, weil das neue Hashing erkannt wurde.
Die globale Einstellung bewirkte, dass die PASSWORD()-Funktion in MySQL jeden eingegebenen Wert in der alten Methode anstelle der neuen Methode hashte, wie es sollte.
Ich bin davon ausgegangen, dass der DBA OLD_PASSWORDS aus gutem Grund auf 1 gesetzt hat, also habe ich eine Lösung verwendet
Die Verwendung der Funktion password() hat zuvor nicht funktioniert, da die globale Einstellung OLD_PASSWORDS=1 dazu führte, dass sie dasselbe Hashing wie die Funktion OLD_PASSWORD() verwendete. Die Sitzungseinstellung erlaubte es, das richtige Passwort zu erzeugen.