> Recently we update our Local Server to this: > > Apache Version : 2.2.11 > PHP Version : 5.3.0 > MySQL Version : 5.1.36 > > All works fine locally, but when we want to connect to a Remote Mysql Server > 5.0.45 just can't, we got the "mysqlnd cannot connect to MySQL 4.1+ using old > authentication" msg > > The solution as i see is to use the OLD_PASSWORD trick, but in this case we > can't do that because the Server is a Shared server and yada yada yada.. > change some in the Remote Mysql Server is not an option > > I think Php must provide a solution for this but we can't found it > > We use SqlYog 6.05 to connect to Mysql Server's. Why it works with NEW and > OLD algorithm and Php don't ? > > Any help on this please ?
The is an entry concerning this in 5.3.0 Backward Incompatible Changes http://php.net/manual/en/migration53.incompatible.php The new mysqlnd library necessitates the use of MySQL 4.1's newer 41-byte password format. Continued use of the old 16-byte passwords will cause mysql_connect() and similar functions to emit the error, "mysqlnd cannot connect to MySQL 4.1+ using old authentication." The account you are trying to connect with is using an old password hash Your options are limited, either 1) Compile PHP to use the libmysql library instead of mysqlnd 2) Have the password updated to use the newer hash. Note The second option will prevent older clients connecting, including the mysql extension (but not mysqli) if it is not using the mysqlnd driver. More information can be found in the MySQL manual on upgrading from v4.0 to v4.1 http://dev.mysql.com/doc/refman/4.1/en/upgrading-from-previous-series.html http://dev.mysql.com/doc/refman/4.1/en/old-client.html -- Niel Archer niel.archer (at) blueyonder.co.uk -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php