Home >Backend Development >PHP Tutorial >Apache2.4+php5.5+mysql5.5环境配置问题,phpinfo中不显示mysql扩展项

Apache2.4+php5.5+mysql5.5环境配置问题,phpinfo中不显示mysql扩展项

WBOY
WBOYOriginal
2016-06-06 20:31:141069browse

在用Apache2.4与php5.5配置独立环境的时候,打印phpinfo也显示成功,能看到开启的扩展项,但是就是不显示mysql的,也打开了mysql的扩展就是不显示,却显示了mysqlnd,测试连接mysql数据库也连接不上。不知道是什么原因

回复内容:

在用Apache2.4与php5.5配置独立环境的时候,打印phpinfo也显示成功,能看到开启的扩展项,但是就是不显示mysql的,也打开了mysql的扩展就是不显示,却显示了mysqlnd,测试连接mysql数据库也连接不上。不知道是什么原因

PHP从5.4开始默认采用mysqlnd实现mysql,mysqli,pdo_mysql.
编译时,PHP5.3这样启用mysqlnd支持:

<code>--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
</code>

PHP5.4后留空则默认启用mysqlnd:

<code>--with-mysql
--with-mysqli
--with-pdo-mysql
</code>

PHP7开始不再支持--with-mysql.

另外,如果你编译时没有添加 --with-mysql 配置项,自然也是不能使用mysql这个扩展的函数的.不过,PHP7开始将废弃mysql扩展,用户应该使用mysqli和pdo_mysql扩展.

PHP5.4.x开始默认使用mysqlnd连接mysql,区别于以前的libmysql,PHP内建支持mysqlnd,而且采用PHP license授权,避免了任何可能存在的版权问题.
http://www.php.net/manual/zh/mysql.installation.php
mysqlnd并不像libmysql那样作为通用库,它是专门为PHP而写的一个库.libmysql是直接访问数据库的,而mysqlnd是通过Zend访问数据库,有着更好的性能,可以在phpinfo()中查看到mysqlnd信息.以前编译PHP时,必须先安装MySQL,然后用--with-mysql=DIR指定MySQL的位置,有了内置的mysqlnd本地驱动,就不需要这样了.

除了解决版权问题外,mysqlnd比libmysql更快,更节省内存,而且提供了丰富的性能统计功能,也更方便PHP的编译.mysqlnd作为一个PHP扩展,跟PHP是紧耦合的,使用的是PHP的内存管理系统,所以内存占用要比libmysql少,效率也更高.可以用memory_get_usage()跟踪mysqlnd的内存使用,同时也受memory_limit的内存限制.
http://php.net/manual/en/mysqlnd.overview.php

PHP 从 5.5 开始废弃了原始的 MySQL 扩展,需使用 MySQLi 或 PDO_MySQL 扩展作为替代。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn