PHP 抛出与 MySQL 插件版本不匹配的错误

PHP 抛出与 MySQL 插件版本不匹配的错误

我在这里使用 Debian Jessie,并且有几个 PHP 页面显示错误:

A PHP Error was encountered
Severity: Warning

Message: mysqli::real_connect(): Headers and client library minor version mismatch. Headers:50553 Library:50630

Filename: mysqli/mysqli_driver.php

包裹php55.6.30+dfsg-0+deb8u1.
包裹php5-mysql5.6.30+dfsg-0+deb8u1.

两者都是标准的 Debian 软件包,我没有手工编译组件的任何部分。

我尝试了apt update和upgrade,重新安装php5-mysql,并重新启动Apache,但没有解决问题。

phpinfo()还抱怨php5-mysql.

该怎么办?

答案1

这似乎是一个错误包装php5-mysql;我在这篇文章中找到了相关问题标头和客户端库次要版本不匹配

虽然不是公认的答案,但该链接中最相关的答案是:

对于新的 MySQL 5.6 系列,您需要安装 php5-mysqlnd,而不是 php5-mysql。

删除此版本的 mysql 驱动程序

sudo apt-get remove php5-mysql 并安装它

sudo apt-get install php5-mysqlnd

然而,为了保持依赖的一致性,卸载php5-mysql并不是最好的想法;这样做要好得多:

sudo apt-get install php5-mysqlnd

并让依赖项卸载php5-mysql 尽管安装php5-mysqlnd.

来自packages.debian.org:软件包:php5-mysqlnd

php5 的 MySQL 模块(本机驱动程序)

该软件包提供直接从 PHP 脚本连接 MySQL 数据库的模块。它包括可用于连接所有版本的 MySQL 的通用“mysql”模块、适用于 MySQL 4.1 或更高版本的改进的“mysqli”模块,以及与 PHP 数据对象扩展一起使用的 pdo_mysql 模块。

完成后sudo apt-get install php5-mysqlnd,相关页面开始正常工作,没有发出警告。

然而,仍在使用 /iso-8859-1 的另一个页面中的其他旧页面latin1开始显示有趣的字母,例如被迫使用 UTF-8,因此我们必须在该服务器上回滚到php5-mysql.

相关内容