如何为php启用mysqlnd?

时间:2012-10-31 13:49:50

标签: php mysql linux yum mysqlnd

我安装并运行了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

6 个答案:

答案 0 :(得分:51)

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

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

当包管理器抱怨时,您不能同时安装php-mysqlphp-mysqlnd

所以你可以

yum remove php-mysql

之前

yum install php-mysqlnd

然后通过

检查是否成功
php -m | grep mysqlnd

php -i | grep mysqlnd

答案 1 :(得分:3)

yum install php-mysqlnd仅适用于CentALT和remi repos。 Webtatic也有一些很好的PHP回购。它不是默认的(我使用的是CentOS)。

答案 2 :(得分:3)

yum swap php-mysql php-mysqlnd

答案 3 :(得分: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服务。

答案 4 :(得分:0)

不知道我是否理解你...... 只需下载php(php-5.x.x.tar.gz)的源代码,解压缩源代码并更改到该目录,然后

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

之后只需通过

 bash:/dir/of/your/source # sudo make && make install

答案 5 :(得分:0)

从PHP 5.4开始,mysqlnd库是一个php.net编译时默认为所有PHP MySQL扩展。 - 参考:dev.mysql.com

使用XAMPP for Linux 1.8.1(它附带PHP 5.4.7)然后从源代码编译会更容易。