标头和客户端库次要版本不匹配

2022-08-30 07:56:31

在PHP中,每当我尝试连接到数据库时,我都会收到以下警告(通过mysql_connect)

警告:mysql_connect():标头和客户端库次要版本不匹配。头文件:50162 库:50524

在我的输出中,我在mysqli下列出了以下值php -i

客户端 API 库版本 = > 5.5.24

客户端 API 标头版本 = > 5.1.62

我尝试过更新php5-mysqlphp,但我已经在两者的最新版本。如何更新标头版本,以便不再看到此警告?

编辑

我的MySQL文件应该全部更新为最新版本:

$ apt-get install mysql.*5.5
. . .
mysql-client-5.5 is already the newest version.
mysql-server-core-5.5 is already the newest version.
mysql-server-5.5 is already the newest version.
mysql-testsuite-5.5 is already the newest version.
mysql-source-5.5 is already the newest version.

删除旧版本

$ apt-get remove mysql.*5.1
. . .
Package handlersocket-mysql-5.1 is not installed, so not removed
Package mysql-cluster-client-5.1 is not installed, so not removed
Package mysql-cluster-server-5.1 is not installed, so not removed
Package mysql-client-5.1 is not installed, so not removed
Package mysql-client-core-5.1 is not installed, so not removed
Package mysql-server-5.1 is not installed, so not removed
Package mysql-server-core-5.1 is not installed, so not removed
Package mysql-source-5.1 is not installed, so not removed

答案 1

我正在使用MariaDB,并有类似的问题。

MariaDB网站,建议通过以下方式修复它

  1. 切换到在 PHP 中使用 mysqlnd 驱动程序(推荐的解决方案)。
  2. 使用 MariaDB 客户端库重新编译 PHP。
  3. 将原始的MySQL客户端库与MariaDB一起使用。

我的问题通过使用Ubuntu中的mysqlnd驱动程序得到解决:

sudo apt-get install php5-mysqlnd

[更新:额外信息]安装此驱动程序还可以解决将整数值作为字符串返回的 PDO 问题。要将类型保持为整数,请在安装 mysqlInd 后执行此操作

$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass, 
          array( PDO::ATTR_PERSISTENT => true));
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);

答案 2

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

删除此版本的 mysql 驱动程序

sudo apt-get remove php5-mysql

并安装它

sudo apt-get install php5-mysqlnd

推荐