(This question is also in StackOverflow http://stackoverflow.com/questions/16575994/mysqlnd-same-mysql-server-and-php-version-cant-connect-from-windows)
I'm migrating mysql functions to mysqli. As I'm using PHP 5.4+, mysqlnd is used by default (is bundled and enabled with PHP).
I have two enviroments, dev and production. Both uses the same database (MySQL 5.5.24-log). old_passwords
is set to OFF
.
Production enviroment is a shared hosting, Linux, PHP 5.4.10. It connects OK to database.
Development enviroment is Win7, PHP 5.4.15, Apache 2.2. It does not connect. The error is:
The server requested authentication method unknown to the client [mysql_old_password]
I have no admin privileges for the database.
I've read a lot and all workarounds point to updating the user's password, in order to use 41-length encoded passwords, but old_passwords
was already off. I tried changing the user's password from the hosting panel (in case that the original was created with old_passwords set in ON), but nothing happens.
Some others suggest downgrading PHP, but I'm trying not to. It's dumb :-/
The weird thing is that it works in Linux, but not in Win. The fact that old_passwords
was set in OFF
makes me thing that the problem may be related with some misconfiguration with mysqlnd
.
Any clues?