当我尝试new mysqli
在 php 脚本中实例化实例时,我随机开始收到此错误:
mysqli::mysqli():标头和客户端库次要版本不匹配。标题:50541 库:50626
我有点困惑,因为当我运行时sudo yum list installed
,版本看起来是相同的。无论哪种方式,运行sudo yum update
都不会实际更新软件包。
sudo yum list installed
这是(仅 php 包)的输出:
php.x86_64 5.4.16-36.el7_1 @updates
php-cli.x86_64 5.4.16-36.el7_1 @updates
php-common.x86_64 5.4.16-36.el7_1 @updates
php-devel.x86_64 5.4.16-36.el7_1 @updates
php-mbstring.x86_64 5.4.16-36.el7_1 @updates
php-mcrypt.x86_64 5.4.16-3.el7 @epel
php-mssql.x86_64 5.4.16-3.el7 @epel
php-mysql.x86_64 5.4.16-36.el7_1 @updates
php-pdo.x86_64 5.4.16-36.el7_1 @updates
php-soap.x86_64 5.4.16-36.el7_1 @updates
我正在使用CentOS Linux release 7.1.1503 (Core)
,PHP 5.4.16
和5.6.26 MySQL Community Server
.
我在这个问题的其他答案中看到您可以安装php-mysqlnd
驱动程序,但该驱动程序未在 yum 的软件包下列出。
以下是我可以通过 yum 安装的 php 软件包:
php.x86_64 5.4.16-36.el7_1 @updates
php-cli.x86_64 5.4.16-36.el7_1 @updates
php-common.x86_64 5.4.16-36.el7_1 @updates
php-devel.x86_64 5.4.16-36.el7_1 @updates
php-mbstring.x86_64 5.4.16-36.el7_1 @updates
php-mcrypt.x86_64 5.4.16-3.el7 @epel
php-mssql.x86_64 5.4.16-3.el7 @epel
php-mysql.x86_64 5.4.16-36.el7_1 @updates
php-pdo.x86_64 5.4.16-36.el7_1 @updates
php-soap.x86_64 5.4.16-36.el7_1 @updates
有人知道我该如何解决这个问题吗?我不知道为什么会突然出现这样的情况。在我周五去度周末之前,脚本就已经开始工作了,据我所知,没有任何改变。
答案1
我能够使用sudo yum install php-mysqlnd
.我一定是第一次安装时输入错误。哎哟!
安装后php-mysqlnd
运行sudo service httpd restart
.
显然是一位同事惹恼了我们的mysql
司机。当被问及他是否改变了与php
or有关的任何内容时mysql
,他告诉我他没有。看了一下.bash_history
,发现他重装了php
,还有一堆mysql
驱动。
学过的知识!
答案2
您可以通过转到 php 扩展并禁用 mysqli 然后启用 nd_mysqli 来解决此错误。祝你好运