El problema aquí se debió a dos problemas simultáneos.
- En el servidor remoto, la configuración global OLD_PASSWORDS se estableció en 1, lo que significa que las contraseñas se codificaban en el método anterior a 4.1.
- la cuenta raíz se había codificado en el método hash más nuevo a pesar de la configuración global (presumiblemente se había ingresado antes de que se estableciera este parámetro), lo que significa que se le concedió acceso a través de la conexión ODBC porque se estaba reconociendo el nuevo hash.
La configuración global provocó que la función PASSWORD() en MySQL codificara cualquier valor ingresado en el método anterior en lugar del método nuevo como se suponía que debía hacerlo.
Supuse que el DBA había establecido OLD_PASSWORDS en 1 por una buena razón, así que como solución usé
El uso de la función contraseña () no había funcionado anteriormente porque la configuración global OLD_PASSWORDS =1 hizo que usara el mismo hash que la función OLD_PASSWORD (). La configuración de la sesión le permitió generar la contraseña correcta.