Het probleem hier was te wijten aan twee gelijktijdige problemen.
- Op de externe server was de algemene instelling OLD_PASSWORDS ingesteld op 1 - wat betekent dat wachtwoorden werden gehasht in de pre-4.1-methode.
- het root-account was gecodeerd in de nieuwere hash-methode ondanks de globale instelling (vermoedelijk was het ingevoerd voordat deze parameter werd ingesteld), wat inhoudt dat het toegang kreeg via de ODBC-verbinding omdat de nieuwe hashing niet goed was herkend.
De globale instelling zorgde ervoor dat de PASSWORD()-functie in MySQL elke ingevoerde waarde in de oude methode hash in plaats van de nieuwe methode zoals het bedoeld was.
Ik nam aan dat de DBA OLD_PASSWORDS om een goede reden op 1 had gezet, dus als oplossing die ik gebruikte
Het gebruik van de functie wachtwoord() werkte voorheen niet omdat de algemene instelling OLD_PASSWORDS=1 ervoor zorgde dat dezelfde hashing werd gebruikt als de functie OLD_PASSWORD(). Dankzij de sessie-instelling kon het juiste wachtwoord worden aangemaakt.