安装php5-mysqlnd后,删除了php5-mysql。 我安装php5-mysql,php5-mysqlnd被删除,我可以使用mysqli。但是,我会收到此错误
mysqli_real_connect(): Headers and client library minor version mismatch. Headers:50541 Library:50627
基于stackoverflow的其他答案,我需要安装php5-mysqlnd来解决这个问题。如何摆脱这个循环?
更新1:
答案 0 :(得分:0)
mysqli_real_connect():标头和客户端库次要版本不匹配。标题:50541图书馆:50627
错误消息表示系统上存在版本冲突。您安装了包含" libmysql"的软件包。和包#34; 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最后......如果你不知道这是什么,你不知道&#39 ; t想要使用它;不要让它混淆你,使用mysqlnd)
现在如果在安装mysqli
之后没有php5-mysqlnd
,这可能是由Ubuntu安装它引起的,但是没有启用模块,因为这个Ubuntu有一个工具php5enmod
试试这个:< / p>
php5enmod mysqli
答案 1 :(得分:-1)
您可能需要启用mysqlnd扩展。我最近遇到了这个问题(所有引用mysqli在安装php5-mysqlnd后都被破坏了),并通过在php.ini的底部添加以下行来修复它:
extension=mysqlnd.so
您可以在phpinfo()的输出中找到php.ini的位置。
另请注意,您需要重新启动网络服务器才能使这些更改生效。