This is my students' current "Most asked question" in regards to the newer php/mysql versions:
PROBLEM:
MySQL now spits out with (prior working) connection attempts:
"Client does not support authentication protocol requested by server. Consider upgrading MySQL client in" blah blah blah....
VERSIONS:
PHP Version 4.3.4RC3-dev
MySQL Version 4.1.0a-alpha-max-nt (Also for 4.1.1++ Versions!!)
SOLUTION:
Run this sql from command line or utility program>>
UPDATE mysql.user SET Password = OLD_PASSWORD('admin_password') WHERE Host = 'localhost' AND User = 'root';
UPDATE mysql.user SET Password = OLD_PASSWORD('admin_password') WHERE Host = '%' AND User = 'root';
UPDATE mysql.user SET Password = OLD_PASSWORD('your_password') WHERE Host = 'localhost' AND User = 'your_user';
UPDATE mysql.user SET Password = OLD_PASSWORD('your_password') WHERE Host = '%' AND User = 'your_user';
FLUSH PRIVILEGES;
RATIONALE:
This is due to the way MySQL 4.1.1 hashes passwords (41 bit instead of 16 bit) in the user table.. You will have to reset the passwords to the old 16-bit format. (New passwords in the user table always start with an asterix *)
If any of your code sets passwords directly, you will have to run MySQL with the --old-passwords option or update your clients to 4.1.1 format, for more info, see the online docs here:
http://www.mysql.com/doc/en/Password_hashing.html