Home > php教程 > php手册 > php无法连接mysql问题

php无法连接mysql问题

WBOY
Release: 2016-05-25 16:52:49
Original
1336 people have browsed it

问题一:今天给本本装上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如果已存在去掉其前面的"#"。

问题二:php脚本可以正常运行,如phpinfo()。

只要一出现"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的。

问题三:

<?php
//以上代码省略 
$link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); 
//以下代码省略 
?>
Copy after login

运行时出现如下提示: fatal error: call to undefined function mysql_connect() in var/www/html/mytest.php

解决方法:1.php.ini中 extension_dir设置为"d:\apache2\php\ext "绝对路径,否则有些环境中会出错。

打开下面两行功能扩展

extension=php_mysql.dll
extension=php_mysqli.dll
Copy after login

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文件中加入下面三行

PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
Copy after login

php.ini中去掉下面两行分号

extension=php_mysql.dll
extension=php_mysqli.dll
Copy after login

将php_mysql.dll和libmysql.dll拷到system32,重起apache服务器.


文章链接:

随便收藏,请保留本文地址!

Related labels:
source:php.cn
Statement of this Website
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
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template