PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰

有朋友下载了PHP5.3,PHP5.4版本想加载mysql支持的时候发现没有libmysql.dll文件,无法完成mysql配置,其实PHP5.3版本开始,使用mysqlnd库,不再使用libmysql.dll用来访问MySQL数据库,大大提升了PHP的数据库访问性能。且默认支持mysql,无需像libmysql.dll要手动复制到windows/system32目录下。

以前版本的PHP访问MySQL数据库,是通过MySQL数据库的libmysql client库,这个libmysql client是用C/C++编写的,虽然一直以来PHP通过libmysql访问数据库性能也一直很好,但却无法利用PHP本身的很多特性。

新的mysqlnd提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存消耗,利用了PHP的Stream API,以及客户段缓存机制。由于mysqlnd是透过Zend引擎,因此提供提供更多高级特性,以及有效利用Zend进行加速

libmysql是直接访问数据库的,而mysqlnd是通过Zend访问数据库。

以上内容,摘自 http://www.51itz.com/?p=467 ,是对PHP5.3没有libmysql.dll的很好说明,这在PHP手册中也有详细说明。

以下是由此带来的困扰,尤其是对新手而言。

1.在阅读一些过时的PHP教程时,会提到libmysql.dll文件,甚或提到要将该文件和php5ts.dll复制到Windows的system32目录下,于是,新手在此时却发现下载的PHP5.3包里没有libmysql.dll文件,于是很困惑。实际上,PHP是有意去除libmysql.dll文件的,因为它提供了更好的替代方式,就是内嵌的php模块“mysqlnd”,也正是由于“mysqlnd”是内嵌的,所以不需要多余的类似libmysql.dll的文件。同时,这对于mysql、mysqli、PDO的使用也是没有影响的,因为这只是对mysql底层交互的方式的更新,php程序员不用管它,原来的还是一样用。

2.在Windows中配置php.ini的extension_dir选项时,一定要确保它可用,然后再去测试某个扩展是否有用。这是做事的顺序问题,不是技术问题。本人多次因使用相对路径而非绝对路径而浪费了很多调试时间!PHP手册中提到该选项可用相对路径或者绝对路径,而本人发现在Windows下只能使用绝对路径,这个请一定注意!

3.从mysql官网http://www.mysql.com/downloads/的“MySQL Connectors”一节可以看出,mysql提供了针对C++、Java、.Net、C、ODBC等通信接口,而对C的接口就是libmysql.dll,它可以用于PHP,因为PHP是用C写的。由此也可以知道,libmysql.dll是一个通用的C接口模块,而不是只对PHP适用。相比,PHP自己研发的mysqlnd模块则是PHP专有的,是遵从它自己的发布协议的。

时间: 2024-10-14 04:55:57

PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰的相关文章

wamp环境单独安装(windows下apache2.4、mysql5.5、php5.5的版本)

当前我使用的是apache2.4.mysql5.5.php5.5的版本 软件下载: 1.vc2012 2.apache 3.mysql 4.php 以上四个需要的软件我已经打包上传至51CTO下载中心,需要的话可以去下载,以下的安装步骤都是基于上面的这几个安装所需的软件进行的,非常的详细,因为考虑到从未安装使用过的朋友能快速的安装配置,每个步骤都有详细的说明. 1.选择版本:   Apache2.4.10 x86版本 2.VC11的依赖(vc2012 x86) 安装顺序:1.vc2012(x86

loadrunner通过使用libmysql.dll完成mysql的测试

[1]需要使用到MySQL的libmysql.dll动态链接库,因此需要安装MySQL:注:本地安装的MySQL最好和MySQL数据库服务器上的版本一致:(本次使用的是MYSQL 5.6) [2]LoadRunner选择"CVuser"协议: [3]选择"File"→"Add Files to script",将MySQL Server 5.6/lib下的libmysql.dll载入:这样载入,相比在脚本中采用绝对路径,可移植性更好: 而后可以看

php5.5以上版本编译扩展模块方法

在编译php5.5以上版本的时候发现,直接下载扩展包编译安装不太好用.其实这个版本以上的php在自身的ext的目录中已经放了不少的扩展模块,编译好了,模块就直接加载进来了.如图: 拿pdo_mysql这个模块为例,进入到这个目录中执行命令phpize,之后出现问题了 根据错误提示确定缺少了某些的包,执行命令安装这些包 yum –y install autoconf yum –y install m4 安装完这两个包之后在执行phpize后没有报错了 然后执行命令 ln -s /usr/local

PHP5.5降版本到5.4.45,K哥

2015.10.8 PHP5.5降版本到5.4.45 主管找到我,开发发现PHP5.5不支持某些插件,具体不懂开发的东西 需要把PHP降级到5.4.45 OK,开始研究 1.首先降级肯定要停网站,报给主管 2.肯定不能用YUM,需要自己编译安装 3.备份是必须要先做的 OK,那先备份吧 都需要备份什么呢 MYSQL数据库.PHP配置文件.网站文件 一定有人说了,需要备份这么多吗 就怕万一啊,万一服务器磁盘坏了你找谁,找谁也没用的 1.数据库备份,这是我喜欢的备份命令 mysqldump -uro

libmysql.dll 找不到

在用C#开发的时候,需要连接MySQL  ,系统提示  libmysql.dll 找不到模块. 我们可以找到 MySQL安装文件夹下的 C:\Program Files\MySQL\MySQL Server 5.6\lib    下的  libmysql.dll 文件  拷贝到  C:\WINDOWS\system32 然后 重新调试就可以了.

在PHP5.5.34版本中启用Zend Opcache

大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过).这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的.Zend Opcache在PHP 5.5后的版本中已经集成了,编译安

window Appserv 2.5.10 php版本升级 由5.2.6版本升级到php-5.3.27-Win32-VC9-x86版本

随着php版本的不断更新 新版本功能越来越先进, 以及旧版本中那些重复功能的函数 进行瘦身,精简. 所以现在很多开源的php项目都在升级php的新版本. Appserv 2.5.10 软件 是我很喜欢的一个windows下快速搭建php开发环境的软件. 只是苦于他的php版本实在太低,而作者也直接从php5.2.6 升级软件到6.0 ,7.0... 我们实在跟不上他的步伐 所以才有了自己手动去升级php的版本 而不改变其他的apache 和 mysql 配置. 以下就是升级步骤 1.php.in

wamp升级php5.3.10到php5.6.13版本

1.  停止WAMP服务器. 2.  去网站windows.php.net 下载php-5.6.13-nts-Win32-VC9-x86.zip. 不要下载THE INSTALLER. 3.  在wamp/bin/php创建php5.6.13文件夹 4.  把下载的zip包解压到php5.6.13文件夹中 5.  从已存在的php版本文件中(如php5.3.10, (eg.   wamp/bin/php/php5.3.3))复制以下文件: -  php.ini.phpForApache.ini和

【PHP】PHP5.4.0版本ChangeLog详解(上)

前言 随着大量的框架使用composer和namespace,渐渐的线上环境也从之前的5.3变成了5.4或者5.5甚至5.6,随着7月份PHP7的发布,会有更多的公司采用新版本. 之前好久就想写这样的一片文章,来说明下各个版本的差异,这次算是拿出时间了. 这次的是第一篇,目前规划写三篇 PHP5.4.0 PHP5.5.0 PHP5.6.0 一方面是对自己的知识的整理,一方面是对自己的一次提升. 官方说明 官方文档地址 http://php.net/ChangeLog-5.php#5.4.0 详细