old_passwords = 1
改为
old_passwords = 0
看下使用数据库用户使用的都是几位的加密的密码
SELECT user, Length(`Password`) FROM `mysql`.`user`;
问题出来16位上
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
用新的password函数加密成42位的。
最后
FLUSH PRIVILEGES;
查考http://blog.mixu.net/2010/06/06/quick-tip-how-to-fix-mysqlnd-cannot-connect-to-mysql-4-1-using-old-authentication-onphp5-3/