同一个PHP脚本,其中会访问MySql,直接从命令行运行成功,从web访问失败,可能原因是什么? 是同一个PHP文件,密码,用户名相同的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 系统是solaris10,SunOS external 5.10 Generic_127128-11 i86pc i386 i86pc从另一台机器,操作系统FreeBsd,同样的程序,命令行方式或者web方式都没有问题。mysql服务器端授予这台机器的权限是完全一样的。 是命令行和web的php.ini不同造成的吗? 从命令行运行成功。使用的php.ini 均是 /usr/local/lib/php.ini 刚测试,通过web方式连接其它数据库没有问题,确定是版本或者权限问题 php设置,MYSQL权限 密码等 查看下。 那就好好检查一下你的WEB程序。 shell 应该添加 :#!/usr/local/php/bin/php -qd open_basedir =/apache 应该去掉这个 两个php文件都在一台机器上,没有换到别的ip上?mysql设置是所有主机都能访问? 回12楼:数据库在生产线上,还是不动了。回13楼:也是怀疑,但命令行方式和web方式使用的用户是一样的,应该和所使用的帐号没有关系(?)回14楼:从web方式看到的phpinfo,open_basedir 为未设置,与你建议的设置一样?回15楼:是同一台服务器,mysql只允许部分主机访问。多谢几位!我已经调整客户机器的apache/mysql/php版本,还是一样从web无法连接,还有其它建议么? 应该是MySQL数据库的访问权限问题。命令行访问的用户与网页访问使用的用户是不一样的。 昨天测试,访问本地mysql没有问题,本地mysql试过很多版本了(为改变客户端库版本),从web还是访问不了mysql。自己顶一下 用tcpdump在本地抓包:成功访问时(命令行执行php脚本):13:04:15.268459 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 69, win 49640, length 013:04:15.272337 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 69, win 49640, length 6413:04:15.272905 IP 172.16.11.99.3306 > internal.33449: Flags [.], ack 65, win 1460, length 013:04:15.272906 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 65, win 1460, length 513:04:15.272924 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 74, win 49640, length 013:04:15.272977 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 74, win 49640, length 1313:04:15.273558 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 78, win 1460, length 1113:04:15.273643 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 85, win 49640, length 1113:04:15.274213 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 89, win 1460, length 1113:04:15.274365 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 96, win 49640, length 5513:04:15.275066 IP 172.16.11.99.3306 > internal.33449: Flags [P.], ack 144, win 1460, length 12613:04:15.280236 IP internal.33449 > 172.16.11.99.3306: Flags [P.], ack 222, win 49640, length 513:04:15.280274 IP internal.33449 > 172.16.11.99.3306: Flags [F.], seq 149, ack 222, win 49640, length 013:04:15.280768 IP 172.16.11.99.3306 > internal.33449: Flags [F.], seq 222, ack 149, win 1460, length 013:04:15.280781 IP internal.33449 > 172.16.11.99.3306: Flags [.], ack 223, win 49640, length 013: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 013:04:20.315379 IP internal.33450 > 172.16.11.99.3306: Flags [R], seq 3299447268, win 49640, length 013: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 013:04:20.316202 IP internal.33450 > 172.16.11.99.3306: Flags [R], seq 3299447268, win 0, length 0前两次握手都比较正常,本地最后一次回包很奇怪,"win 0",继续翻文档。这种方法有点笨,哪位有好点的建议? 浮点和定点运算的一个问题 php能不能把MYSQL里的某列的值装入单维数组? 求助xajax中怎样输出中文 帮忙改个正则 要新建一个数据库,如何先判断下是否已存在? 大家看一下我这段PHP代码有什么错误啊 求一段能将半角字符转成全角字符的PHP代码! 请问php能否将htm文件进行utf-8和gb2312之间互转? 这个URL参数为什么不能正确传递? 用在线播放器做在线播放,如何才能做到地址的隐藏?? 分页中删除数据跳回去后数据竟然还在,非要刷新一下才行 php连接DB2数据库
apache 应该去掉这个
mysql设置是所有主机都能访问?
回13楼:也是怀疑,但命令行方式和web方式使用的用户是一样的,应该和所使用的帐号没有关系(?)
回14楼:从web方式看到的phpinfo,open_basedir 为未设置,与你建议的设置一样?
回15楼:是同一台服务器,mysql只允许部分主机访问。多谢几位!
我已经调整客户机器的apache/mysql/php版本,还是一样从web无法连接,还有其它建议么?
成功访问时(命令行执行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",继续翻文档。这种方法有点笨,哪位有好点的建议?