是同一个PHP文件,密码,用户名相同的。

解决方案 »

  1.   

    系统是solaris10,SunOS external 5.10 Generic_127128-11 i86pc i386 i86pc从另一台机器,操作系统FreeBsd,同样的程序,命令行方式或者web方式都没有问题。mysql服务器端授予这台机器的权限是完全一样的。
      

  2.   

    是命令行和web的php.ini不同造成的吗?
      

  3.   

    从命令行运行成功。使用的php.ini 均是 /usr/local/lib/php.ini 
      

  4.   

    刚测试,通过web方式连接其它数据库没有问题,确定是版本或者权限问题
      

  5.   

    php设置,MYSQL权限 密码等 查看下。
      

  6.   

    那就好好检查一下你的WEB程序。
      

  7.   

    shell 应该添加 :#!/usr/local/php/bin/php -qd open_basedir =/
    apache 应该去掉这个
      

  8.   

    两个php文件都在一台机器上,没有换到别的ip上?
    mysql设置是所有主机都能访问?
      

  9.   

    回12楼:数据库在生产线上,还是不动了。
    回13楼:也是怀疑,但命令行方式和web方式使用的用户是一样的,应该和所使用的帐号没有关系(?)
    回14楼:从web方式看到的phpinfo,open_basedir 为未设置,与你建议的设置一样?
    回15楼:是同一台服务器,mysql只允许部分主机访问。多谢几位!
    我已经调整客户机器的apache/mysql/php版本,还是一样从web无法连接,还有其它建议么?
      

  10.   

    应该是MySQL数据库的访问权限问题。命令行访问的用户与网页访问使用的用户是不一样的。
      

  11.   

    昨天测试,访问本地mysql没有问题,本地mysql试过很多版本了(为改变客户端库版本),从web还是访问不了mysql。自己顶一下
      

  12.   

    用tcpdump在本地抓包:
    成功访问时(命令行执行php脚本):
    13:04:15.268459 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 69, win 49640, length 0
    13:04:15.272337 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 69, win 49640, length 64
    13:04:15.272905 IP 172.16.11.99.3306 > internal.33449: Flags [.], ack 65, win 1460, length 0
    13:04:15.272906 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 65, win 1460, length 5
    13:04:15.272924 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 74, win 49640, length 0
    13:04:15.272977 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 74, win 49640, length 13
    13:04:15.273558 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 78, win 1460, length 11
    13:04:15.273643 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 85, win 49640, length 11
    13:04:15.274213 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 89, win 1460, length 11
    13:04:15.274365 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 96, win 49640, length 55
    13:04:15.275066 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 144, win 1460, length 126
    13:04:15.280236 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 222, win 49640, length 5
    13:04:15.280274 IP internal.33449 > 172.16.11.99.3306: Flags [F.], seq 149, ack 222, win 49640, length 0
    13:04:15.280768 IP 172.16.11.99.3306 > internal.33449: Flags [F.], seq 222, ack 149, win 1460, length 0
    13:04:15.280781 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 223, win 49640, length 0
    13:04:15.280832 IP 172.16.11.99.3306 > internal.33449: Flags [.], ack 150, win 1460, length 0
    失败(web页面访问)
    13:04:20.315355 IP internal.33450 > 172.16.11.99.3306: Flags [S], seq 3299447267, win 49640, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0
    13:04:20.315379 IP internal.33450 > 172.16.11.99.3306: Flags [R], seq 3299447268, win 49640, length 0
    13:04:20.316184 IP 172.16.11.99.3306 > internal.33450: Flags [S.], seq 1463773448, ack 3299447268, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 2], length 0
    13:04:20.316202 IP internal.33450 > 172.16.11.99.3306: Flags [R], seq 3299447268, win 0, length 0前两次握手都比较正常,本地最后一次回包很奇怪,"win 0",继续翻文档。这种方法有点笨,哪位有好点的建议?