在Ubuntu上安装mysqlnd后,mysqli无法正常工作

问题描述:

安装php5-mysqlnd后,php5-mysql被删除。 我安装php5-mysql,php5-mysqlnd被删除,我可以使用mysqli。但是,我会收到此错误在Ubuntu上安装mysqlnd后,mysqli无法正常工作

mysqli_real_connect(): Headers and client library minor version mismatch. Headers:50541 Library:50627 

基于其他答案在stackoverflow,我需要安装php5-mysqlnd来解决这个问题。如何摆脱这个循环?

更新1:

  • 尝试添加扩展= mysqlnd.so在php.ini
  • 尝试php5enmod的mysqli和php5enmod mysqlnd在bash
  • 的mysqli仍然无法安装后,通过工作的php5-mysqlnd apt-get
+1

您不能同时安装两者。 [PHP文档建议您使用mysqlnd](http://php.net/manual/en/mysqlinfo.library.choosing.php)。 – Mike

您可能需要启用mysqlnd扩展。我就遇到了这个问题,最近通过添加以下行来我的php.ini的底部,并固定它(mysqli的正在安装PHP5-mysqlnd后,打破了所有引用):

extension=mysqlnd.so 

你可以找到的位置,你的php.ini在phpinfo()的输出中。

另请注意,您需要重新启动您的网络服务器才能使这些更改生效。

+0

Mysqlnd不是扩展 –

+0

@YourCommonSense它是,虽然不导出任何用户空间API,但我不认为答案有帮助。 – johannes

+0

你好,我已经添加了该行,它不起作用。也评论了mysql.so和mysqli.so这行,但不起作用 –

mysqli_real_connect():标头和客户端库次版本不匹配。标题:50541库:50627

错误消息意味着您的系统上存在版本冲突。您安装了包含“libmysql”的软件包以及与该库链接的软件包“php5-mysql”,同时使用了不同的版本。这表明从Ubuntu打包出来的问题(不太可能),或者你弄糟了不同的软件包来源。准确地说:PHP认为它会使用libmysql 5.5,而安装5.6。问题的其他部分:php5-mysqlnd和php5-mysql都包含不同的MySQL用户空间API库(mysql,mysqli和pdo_mysql),一个包是传统的,其中这些模块使用libmysql,另一个是那些模块使用myslqnd的“现代”模式。解释差异的文档是http://php.net/manual/en/mysqlinfo.library.choosing.php简短形式是:使用mysqlnd,除非你有非常具体的要求(即使用libmysld,最后用d ..如果你不知道这是什么,你不想使用它;唐“吨让它迷惑你,使用mysqlnd)

现在,如果有安装php5-mysqlnd这可能被Ubuntu引起安装它,但不能使该模块后没有mysqli,这个Ubuntu有一个工具php5enmod试试这个:

php5enmod mysqli 
+0

非常感谢您的帮助。但是,它不起作用。有没有其他方法?或者如果有任何信息我可以给你解决这个错误? –