Masalahnya di sini adalah karena dua masalah bersamaan.
- Di server jauh, setelan global OLD_PASSWORDS disetel ke 1 - artinya sandi di-hash dalam metode pra-4.1.
- akun root telah dikodekan dalam metode hashing yang lebih baru meskipun ada pengaturan global (mungkin itu telah dimasukkan sebelum parameter ini disetel), yang berarti bahwa itu diberikan akses melalui koneksi ODBC karena hashing baru telah dikenali.
Pengaturan global menyebabkan fungsi PASSWORD() di MySQL melakukan hash pada nilai yang dimasukkan dalam metode lama alih-alih metode baru seperti yang seharusnya.
Saya berasumsi bahwa DBA telah menetapkan OLD_PASSWORDS ke 1 untuk alasan yang baik sehingga sebagai solusi saya menggunakan
Menggunakan fungsi password() tidak bekerja sebelumnya karena pengaturan global OLD_PASSWORDS=1 menyebabkannya menggunakan hashing yang sama dengan fungsi OLD_PASSWORD(). Pengaturan sesi memungkinkannya menghasilkan kata sandi yang benar.