我安装并运行了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
答案 0 :(得分:51)
./configure
命令是源代码编译过程的一部分。
您可以从源代码编译或通过包管理器安装。我想在你的情况下,包管理器是更可取的。
当包管理器抱怨时,您不能同时安装php-mysql
和php-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)然后从源代码编译会更容易。