<?php
$db_host='127.0.0.1';  //localhost 也没法连
$db_database='mysql';
$db_username='root';
$db_password='root';
$connection=mysql_connect($db_host,$db_username,$db_password);//连接到数据库
if(!$connection){
die("could not connect to the database:</br>".mysql_error());//诊断连接错误
}
mysql_close($connection);//关闭连接
?>上面是连接的php代码,用户名密码都对的,用命令来连都能连上。。使用localhost也一样,只不过提示不一样,用localhost 提示由于目标计算机积极拒绝,用127.0.0.1 mysql.error() 啥提示也没有。开启了mysql的日志,发现用cmd命令和软件连 都有记录下来,但是用php去连,连记录都没有。百度了很多方案,hosts文件对应也做了127.0.0.1 localhost ,防火墙也关了。mysql user 表 如下:是我的系统出问题了吗? 之前都可以连,我忘记是我做了啥后就不能连了,因为dwcs4 验证加了一些屏蔽 adobe 的行到hosts文件,好像就这个操作。请各位大神支个招,还能修改的起来吗,快奔溃了。ps:还有个奇葩问题,用curl 来抓网页,抓本地网页可以用localhost抓,但是抓腾讯首页就抓不了,带域名的都抓不了。

解决方案 »

  1.   

    1、写一个不使用数据库的 php 程序,分别用 127.0.0.1 和 localhost 访问
          已确认这两种地址有效
    2、再次确认命令行方式有效
    3、给出你的 MySQL 的版本号,最好还给出 MySQL 的安装路径
      

  2.   


    如果只是用在浏览器打127.0.0.1 和 localhost 来访问网页是没问题的。在php程序里面用localhost curl 抓取网页也可以。
    命令行有效,昨天试过了。
    mysql版本号5.5,安装路径 c:\program files\mysql\mysql server 5.5\bin 好像是这样现在问题已经确定一部分,就是我用域名  mysql.sql58.eznowdata.com 访问远程数据库  mysql.sql58.eznowdata.com是无法访问的,提示找不到这样的主机:php_network_getaddresses: getaddrinfo failed。 但是我在公司电脑访问确实可以的。这个证明我自己电脑的php访问远程数据库解析不了域名,ping 域名是能ping到ip的
      

  3.   

    $db_host='127.0.0.1';  //localhost 也没法连
    这是链接的本地数据库用 mysql.sql58.eznowdata.com 远程访问,还需对 mysql.db 表进行授权处理
    且 mysql.sql58.eznowdata.com 并未在互联网中注册但是你的原始描述和补充描述根本就是两回事
    请提供真实有效的信息!
      

  4.   

    是这样子,我用 $db_host='127.0.0.1';  是链接本地数据库,无法连接。然后我改用 mysql.sql58.eznowdata.com  去连服务器看看能不能连,也不能连。这个是我从侧面做了一个测试,不是指一个问题。最重要的问题就是 本地的localhost 和 127.0.0.1 连不上数据库
      

  5.   

    抓取数据 伪造agent看下
      

  6.   

    你这是什么排查问题的方法?
    排查问题都是逐步缩小可能的范围,你却弄些不相干的事情来干扰问题的查找将 mysql5.5 的安装路径从环境变量 PATH 中删去,再做连接试验
      

  7.   

    还是不行,我系统环境变量path里面没有mysql的路径。
      

  8.   

    你用控制台能连接不?mysql -uroot 'password' 要是这样可以,你可以在D:\Xampp\phpMyAdmin\config.inc.php 的
    /* Authentication type and info */
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = '你的密码';
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['AllowNoPassword'] = true;
    在访问
      

  9.   

    解决了,我总感觉是php环境的问题直接用老版本的php文件覆盖,然后重新设置php.ini ,居然可以访问了。重新用老版本的php.ini-XXXX文件来设置。不能在原来的php.ini下设置,可能是php.ini 哪里设置不对。还有改了mysql的端口号,改为3307,这个应该不是问题,主要问题,可能还是php.ini 的设置。 然后再用原来的版本覆盖回去,再用重新设置php.ini 问题解决了。