日期:2014-05-16  浏览次数:20676 次

mysql_connect() 不支持 请检查 mysql 模块是否正确加载





  今天在部署开源论坛discus!的时候出现了这个问题,以下是解决这个问题的途径:




   首先搜了一下这个错误,出现这个问题的还是挺多的,大部分的解决办法如下:



一、在系统的 system32(C:\windows\system32)目录下缺少libmysql.dll文件,解决方法是找到php目录下的libmysql.dll,并将libmysql.dll复制到C:\ windows\system32目录中,然后重新启动Web服务。

二、在C:\windows目录下的php.ini文件中,没有将“;extension=php_mysql.dll”中的前面一个“;”去掉,所以不能使用相应功能,解决方法是打开php.ini文件找到;extension=php_mysql.dll    改成

extension=php_mysql.dll    //去掉前面的;使之生效

三、Mysql目录没有读取权限,正确的目录权限如下:

administrator   完全控制
system          完全控制
users           读取和运行+列出文件夹目录+读取
其他的用户权限全部删除,然后重启MYsql服务和Web服务
(注:以上设置无安全设置;建议修改后重启一下服务器)
重要,还要检查php.ini文件的权限,检查复制到system32里面的php文件的权限,检查php安装目录文件夹的权限.至少要有users默认权限.temp文件夹至少要有users组修改级别权限.



但是,所有的方法都试过了,还是没能解决,于是我搜索了一下mysql_connect()不支持,




http://wenwen.soso.com/z/q141514137.htm的回答对我启发很大,




把以下代码保存为phpinfo.php:
<?php
phpinfo();
?>

放在discuz所在目录中, 用浏览器访问它. 然后在phpinfo.php显示页面中查找字符串 mysql.
如果MySQL已经安装, 并且php_mysql模块也正确装载了, 就能看到类似下面的表格:

mysql
-------
MySQL Support enabled
Active Persistent Links 1
Active Links 1
Client API version 5.0.37
-------
如果看不到, 而且你确定数据库已经安装了, 那么可能需要在服务器中加载libmysql.dll:
打开httpd.conf (这个是Apache的配置文件), 加入:
LoadFile "你的PHP目录/libmysql.dll"
然后重启http服务.



我按照他说的做了之后,没能看到有mysql的信息,但是数据库确实已经运行无误。




于是搜了下“phpinfo()中没有Mysql” 结果是需要把 D:\php5\ext目录下的php_mysql.dll、php_mysqli.dll和上层目录中的libmysql.dll复制到system32

并将php的目录加到windows的系统路径里去,




在 Windows NT,2000,XP 和 2003 下:

?进入控制面板并打开“系统”图标(开始 -> 设置 -> 控制面板 -> 系统,Windows XP/2003 中是:开始 -> 控制面板 -> 系统)

?选择“高级”标签页

?点击“环境变量”按钮

?在“系统变量”栏中

?找到 Path 这一项(可能需要向下滚动才能找到)

?鼠标双击 Path 这一项

?在最后加入你的 PHP 目录,包括前面的“;”(例如: ;C:\php )

?点击“确定”并重新启动电脑

好了,一切就绪,重启电脑,大功告成,一路绿灯,,happying。。。



总结:理清思路,当出现这个错误时,先借助网络找到原因和解决方案,一个一个排除,直        到解决问题,人多力量大嘛!

       排除的思路很重要,比如,在解决这个问题时,通过打开和停止mysql服务,可以看          出,问题不是mysql,而是没有连接到mysql,需要调整与mysql相关的配置文件,一        步一步来。