【发布时间】:2012-06-01 07:50:11
【问题描述】:
在 PHP 中,每当我尝试连接到数据库时都会收到以下警告(通过 mysql_connect)
警告:mysql_connect():标头和客户端库次要版本不匹配。标头:50162 库:50524
在我的php -i 输出中,mysqli 下列出了以下值
客户端 API 库版本 => 5.5.24
客户端 API 标头版本 => 5.1.62
我已经尝试更新 php5-mysql 和 php,但我已经使用了它们的最新版本。如何更新标头版本以便不再看到此警告?
编辑
我的 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
【问题讨论】:
-
你还必须更新 mysql 的东西。 mysql-client 之类的。
-
@MarcB 我应该拥有所有最新版本的 MySQL 套件(请参阅我的最新编辑)
-
“客户端 API 标头”版本无法升级,因为它被硬编码到 PHP 可执行文件中。它们是编译 PHP 时安装在 PHP 软件包维护者系统上的 mysql 头文件(和库)。您无法升级它们。您必须故障回复到 MySQL 5.1.X 库以使该版本的 PHP 再次运行,或者将 PHP 升级到使用 MySQL 5.5.X 编译的版本。
-
@dAm2K 事实证明,版本可以通过将我当前的 mysqli.so 文件换成较新的文件来升级。
-
我真的不知道是否有办法检查 ABI 兼容性......你只需要检查 apache error_log 是否有奇怪的 httpd 子错误。如果 3-4 天后错误没有出现,你应该没问题。
标签: php ubuntu mysqli warnings