更新到php5.3中断连接到mysql db

gir*_*roy 5 php mysql

我刚刚将php更新为5.3,无法再连接到我的远程mysql服务器.我收到以下错误:

mysqli_connect(): OK packet 6 bytes shorter than expected
mysqli_connect(): (HY000/2000): mysqlnd cannot connect to MySQL 4.1+ using old authentication
Run Code Online (Sandbox Code Playgroud)

这似乎与新的mysqlnd驱动程序有关.有没有办法强制它使用旧的libmysql驱动程序.此外,恢复到php5.2.11似乎并没有解决似乎适用于大多数人的问题.

Cra*_*ows 1

好吧,我打了一个很长很酷的回复,但比我更好的人已经回答了。tldr;此响应的目的是为您的应用程序重新编译您的 php。

http://news.php.net/php.internals/43535

Ionut G. Stan schrieb:

警告:mysql_connect() [function.mysql-connect]:OK 数据包比第 18 行 {filename} 中的预期短 6 个字节警告:mysql_connect() [function.mysql-connect]:mysqlnd 无法使用旧身份验证连接到 MySQL 4.1+在第 18 行的 {filename} 中

这说明了一切。您不能对 mysqlnd 使用旧的身份验证。

将服务器密码升级到更新且更安全的身份验证方法,或者使用 libmysql(MySQL 客户端库)支持重新编译 PHP。检查 ./configure --help | grep -C3 mysql 和 http://www.php.net/manual/en/mysql.installation.php