问题一:今天给本本装上MysqL和PHP,一切安装都很正常(PHP@IIS7.5-fastCGI)。但用PHPmyadmin连接测试时却出现“#2002无法连接”的错误,用其它程序也是同样问题。
检查了下,PHP的MysqL扩展正确安装,MysqL服务正常启动--那就奇了怪了。又用navicat连接,居然连上了,看来是PHP和MysqL间的通讯出了问题。
百度了一下,问题被揪出来了:MysqL_connect()函数数据库服务器(server)参数当前设置为localhost,但当其更改为127.0.0.1后又可以正常访问,系统hosts文件未提供127.0.0.1到localhost的解析。
解决方法(以win7系统为例):找到C:\Windows\System32\drivers\etc\hosts文件,默认为只读,你需要复制一份到其他路径如桌面,打开文件(打开方式:记事本),在文件末尾添加:127.0.0.1 localhost如果已存在去掉其前面的“#”。
只要一出现“MysqL_connect”函数,就没反应,也不报错,如 $conn = MysqL_connect("127.0.0.1","root","xxxx") or die("MysqL数据库连接失败:".MysqL_error());
apache日志目录error.log中出现
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\PHP\\ext\\PHP_MysqL.dll'
解决办法:将“libMysqL.dll”复制到apache的bin目录下。然后重启,观察error.log,如果错误消失,那恭喜了。
另:网上资料也有说将““libMysqL.dll””“PHP_MysqL.dll”复制到windows/system32的。
问题三:
运行时出现如下提示: fatal error: call to undefined function MysqL_connect() in var/www/html/mytest.PHP
解决方法:1.PHP.ini中 extension_dir设置为"d:\apache2\PHP\ext "绝对路径,否则有些环境中会出错。
打开下面两行功能扩展
2.拷贝libMysqL.dll(PHP目录下)和PHP_MysqL.dll(PHP/ext目录下)至c:\windows\system32目录下(libMysqL.dll必须为PHP目录下,比如我的为D:\apache2\PHP目录下的libMysqL.dll,PHP_MysqL.dll则在D:\apache2\PHP\ext)
3.测试
1> 先打开命令行:A)依次点击“开始”菜单-> “MysqL”-> “MysqL5 server”-> “MysqL Command Line Client”//如此步成功则MysqL安全成功,失效则MysqL安装失败,请卸载后重装
B)输入密码 //此步正常则说明 root账户的密码正确。失败则账号密码有错
2> 新建文件至主目录,并保存为testMysqL.PHP,接着在浏览器中输入http://localhost/testMysqL.PHP(或者http://localhost:81/testMysqL.PHP),如果不行查看一下apache是否加载了PHP与 MysqL方法
apache中支置对PHP5的支持httpd.conf文件中加入下面三行
LoadModule PHP5_module "D:/ccopen/PHP5/PHP5apache2_2.dll"
AddType application/x-httpd-PHP .PHP
PHP.ini中去掉下面两行分号