2

我自己管理一个小 vps,我最近从 mysql 转移到 mariadb (5.3)。

在一些通常在 php5/mysql5 下工作的 php 测试项目中,我得到一些关于 MySQL 版本的标题错误。

  Headers and client library minor version mismatch. Headers:50158 Library:50303 

我的猜测是:MariaDB 5.3 是库,标题是 libmysqlclient。

我不知道更新/安装时我在哪里失败了(甚至尝试删除 mysql 并只安装 mariadb),但似乎它发生在 php-mysql 包中。

我尝试使用 apt-get 中的 -o 来配置 --with-mysql=mariadb-devel 就像我在一个主题上看到的那样,但实际上,我似乎不知道如何配置 php5-mysql包(我什至不知道它是做什么的:配置文件或库?)

总结一下,为什么我的 PHP5 MySQL 标头仍在 5.1 中,而库是 5.3 ?

预先感谢您的帮助,卢卡斯。

[加] 如何从 apt-get install 恢复配置参数?我使用时没有结果:

php5 -i | grep configure
4

2 回答 2

3

我遇到了这个问题,我解决了:(我的服务器上安装了服务器版本:5.3.5-MariaDB-ga-mariadb113-log 和 php 5.4.0)我下载了 php 5.4.0 源并手动编译了 mysql.so。这是解决方案:

# cd /root/php-5.4.0/ext/mysql
# phpize
# ./configure --with-mysql=/usr --with-libdir=lib64/mysql
# make

mysql.so 已经编译没有错误并且工作正常。注意:需要 MariaDB-devel 包和 php-devel 包。

于 2012-03-16T03:47:12.710 回答
3

您的 PHP5 MySQL 标头仍在 5.1 中,其中库为 5.3,这是因为 PHP 没有使用新标头重新编译(也不应该是因为 5.3 保持二进制向后兼容)。

检查驱动程序本身是错误的,或者说过于谨慎。PHP (mysqli) 在 MySQL 驱动程序中是独一无二的,因为它会在次要版本高于编译的版本时出错。

这是PHP MySQL 驱动程序的错误报告

于 2012-01-04T19:56:45.210 回答