2016-06-08 134 views
0

安裝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

回答

-1

您可能需要啓用mysqlnd擴展。我就遇到了這個問題,最近通過添加以下行來我的php.ini的底部,並固定它(mysqli的正在安裝PHP5-mysqlnd後,打破了所有引用):

extension=mysqlnd.so 

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

另請注意,您需要重新啓動您的網絡服務器才能使這些更改生效。

+0

Mysqlnd不是擴展 –

+0

@YourCommonSense它是,雖然不導出任何用戶空間API,但我不認爲答案有幫助。 – johannes

+0

你好,我已經添加了該行,它不起作用。也評論了mysql.so和mysqli.so這行,但不起作用 –

0

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

非常感謝您的幫助。但是,它不起作用。有沒有其他方法?或者如果有任何信息我可以給你解決這個錯誤? –

相關問題