php - MySQL => MariaDB = PHP 错误头文件/库版本

标签 php mysql mariadb

我自己管理一些 vps,最近我从 mysql 迁移到了 mariadb (5.3)。

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

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

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

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

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

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

提前感谢您的帮助, 卢卡斯。

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

php5 -i | grep configure

最佳答案

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

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

这里是 bug report for PHP MySQL driver

关于php - MySQL => MariaDB = PHP 错误头文件/库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682535/

相关文章:

php - 在 php 中放置 session 检查后无法显示表格

mysql - select query MySQL, Beego 中如何选择特定id的总和

php - 如何在 google map api v3 中创建可点击的图标?

mysql - mySQL 中的当前时间戳延迟 30 分钟

mysql - MySQL中的 "!= NULL"和 "IS NOT NULL"有区别吗?

python - MySQL 连接器/Python 存储过程插入未提交

mariadb - 更改 MariaDB 中的列名称

mysql - 将 SELECT 语句转换为 UPDATE 语句 - MySQL/phpMyAdmin

php - 操作完成后禁用提交表单

php - 如何将表从一个数据库复制到不同服务器的另一个数据库