php 无法加载mysql的module的时候的配置的解决方案引发的思考

yipeiwu_com6年前Mysql基础
之后看phpinfo() 里 确实也没找到mysql 模块, 之后所谓的解决方案如“将php.ini” 放入C:\Windows 环境变量等不靠谱说法。。。。。

甚至拷贝ext的文件夹的dll 到System32 中等

统统不靠谱 直到看到这篇帖子,我才发现问题

http://www.haosblog.com/index.php?mod=article_read&id=322

“mysql无法找到的原因是mysql的运行库无法找到,打开mysql的安装文件夹,在bin文件夹中找到libmySQL.dll,将它复制到system32文件夹中,让mysql的运行库能在系统中注册,然后重启Apache”

我是在\MySQL\MySQL Server 5.5\lib目录里找到的

实际上在自己配置的时候应该发现不是环境变量或者是没有加载到php.ini 或者没加载到extension的

为什么这么说呢

首先,在Apache 的配置中 已经添加了php的配置路径

image

同时phpinfo()也显示的加载到了,有兴趣的同学可以试试php.ini  存在和不存在的时候的区别

 

image

 

其次,自己在php.ini里确实配置了extension_dir 的,如果这个东西没意义,那何必在配置文件里有这个选项?之后这里注意一下,他的分隔符和apache 刚好相反   是“\”

image 

之后php 也顺利加载了 

 

image

所以,其实完全可以避免自己跟着瞎折腾的,结果大意了。

PHP配置成功后phpinfo中找不到mysql

不少新人使用Apache+PHP+MySql配置好PHP环境都会遇到一个问题:mysql无法使用,使用phpinfo()函数获取的信息中也找不到mysql。
网上不少资料都说要把php.ini转移到windows或者system32文件夹中,这是胡扯!如果你把php和php/ext的目录添加到了环境变量中是不需要这么设置的。这么做的原因是Apache会到默认路径中查找配置文件,而没有设置环境变量的话Apache就找不到php.ini了。你可以看看phpinfo()页面中搜索php.ini,php.ini的路径是windows那么就把PHP的路径写入环境变量中,环境变量的设置可上网查找一下,尽量不要将php.ini放入系统文件夹中,对系统盘的操作要越少越好。
mysql无法找到的原因是mysql的运行库无法找到,打开mysql的安装文件夹,在bin文件夹中找到libmySQL.dll,将它复制到system32文件夹中,让mysql的运行库能在系统中注册,然后重启Apache,打开phpinfo()页面,搜索mysql,结果如下图

    那么恭喜你,mysql已经能够正常在你的PHP中运行了。
    不少新人都会被这个问题困扰,当初我也被它困扰了很久,网上的资料都是说把php.ini复制到系统盘,可是依然无用。这里严重BS一下那些没有实际行动只会复制别人文章的人,不少错误的信息就是被他们扩散,误导了不少新人,严重鄙视!

相关文章

PHP中使用sleep造成mysql读取失败的案例和解决方法

近日,由于项目需求 需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作。 sleep等待的时间至少有一个小时以上 此前做过测试 用sleep函数去完成数小时后执行的操作是可行...

解析mysql 表中的碎片产生原因以及清理

大量删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来 。对于不同的存储引擎整理碎片的方式不一样。myisam可以有以下方式:mysql>...

自写的利用PDO对mysql数据库增删改查操作类

前言 PDO一是PHP数据对象(PHP Data Object)的缩写。 并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver...

解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)

【错误原因】:mysql_query执行超时.【解决办法】:修改php.ini中的 max_execution_time的值,默认为300,单位是秒,例如:;max_execution_...

fetchAll()与mysql_fetch_array()的区别详解

同一个查询语句:fetchAll():复制代码 代码如下:array(1) {          ...