48

我已经安装并运行了 PHP(版本:5.3.17),我想切换到 mysqlnd(在 phpinfo 中,mysqlnd 根本不存在)。

我读到要设置它,您需要更新./configure命令:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \

当我尝试安装它时yum install php-mysqlnd出现错误:

---> Package php-mysqlnd.x86_64 0:5.3.17-1.26.amzn1 will be installed
--> Processing Conflict: php-mysql-5.3.17-1.26.amzn1.x86_64 conflicts php-mysqlnd
--> Finished Dependency Resolution
Error: php-mysql conflicts with php-mysqlnd
4

6 回答 6

52

./configure命令是源代码编译过程的一部分。

您可以从源代码编译或通过包管理器安装。我想在你的情况下,包管理器更可取。

正如包管理器所抱怨的那样,您不能同时安装php-mysqlphp-mysqlnd安装。

这样你就可以

yum remove php-mysql

yum install php-mysqlnd

然后通过检查成功

php -m | grep mysqlnd

或者

php -i | grep mysqlnd
于 2012-11-01T12:10:19.843 回答
6
yum swap php-mysql php-mysqlnd
于 2016-03-03T09:25:43.720 回答
3

yum install php-mysqlnd仅在 CentALT 和 remi repos 上可用。Webtatic 也有一些很好的 php 存储库。它不是默认的(我使用的是 CentOS)。

于 2013-08-20T07:32:14.707 回答
2

我可能迟到了,但这可能对其他人有帮助。正如论坛其他地方已经说过的,如果对 get_result 之类的函数的调用抱怨它是未定义的,那么需要安装 php-mysqlnd(这个问题)。我意识到做 yum install (centos) 会自动报告它要删除 php-mysql 和 phpmyadmin;不要接受这一点,因为您的 phpmyadmin 之后可能无法工作。相反,使用 yum shell 将立即接受命令并优雅地处理转换;在命令行中执行这些操作:

# yum shell
> remove  php-mysql
> install php-mysqlnd
> run
> quit

现在您可能必须重新启动 mariadb(很可能)和 httpd 服务。

于 2019-01-22T20:29:45.573 回答
0

不知道我对你的理解是否正确....只需下载php的源代码(php-5.xxtar.gz),解压缩源代码并切换到该目录即可

 bash:/dir/of/your/source # ./configure --with-mysql=... and your other config params

在那之后就可以了

 bash:/dir/of/your/source # sudo make && make install
于 2012-10-31T13:57:11.650 回答
0

自 PHP 5.4 起,mysqlnd 库是所有 PHP MySQL 扩展的 php.net 编译时默认值。- 参考:dev.mysql.com

使用XAMPP for Linux 1.8.1(它与 PHP 5.4.7 一起提供)然后从源代码编译会更容易一些。

于 2012-10-31T17:08:36.573 回答