首页 >后端开发 >php教程 >PHP 一直报错.而且还不能正常访问.这是什么情况PHP Warning: mysqli::mysqli()(HY000/2003)

PHP 一直报错.而且还不能正常访问.这是什么情况PHP Warning: mysqli::mysqli()(HY000/2003)

WBOY
WBOY原创
2016-06-23 14:19:521684浏览

[23-Aug-2013 00:29:57] PHP Warning:  mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on '42.120.19.1' (10048) in D:\wwwroot\sms\common\DbManager.php on line 14
[23-Aug-2013 00:29:57] PHP Warning:  mysqli::set_charset() [mysqli.set-charset]: Couldn't fetch mysqli in D:\wwwroot\sms\dao\PhoneDao.php on line 92
[23-Aug-2013 00:29:57] PHP Warning:  PhoneDao::deleteUsedPhone() [phonedao.deleteusedphone]: Couldn't fetch mysqli in D:\wwwroot\sms\dao\PhoneDao.php on line 93
[23-Aug-2013 00:29:58] PHP Warning:  mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on '42.120.19.1' (10048) in D:\wwwroot\sms\common\DbManager.php on line 14
[23-Aug-2013 00:29:58] PHP Warning:  mysqli::set_charset() [mysqli.set-charset]: Couldn't fetch mysqli in D:\wwwroot\sms\dao\SysParamDao.php on line 15
[23-Aug-2013 00:29:58] PHP Warning:  SysParamDao::getSysParam() [sysparamdao.getsysparam]: Couldn't fetch mysqli in D:\wwwroot\sms\dao\SysParamDao.php on line 16
[23-Aug-2013 00:29:58] PHP Warning:  mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on '42.120.19.1' (10048) in D:\wwwroot\sms\common\DbManager.php on line 14
[23-Aug-2013 00:29:58] PHP Warning:  mysqli::set_charset() [mysqli.set-charset]: Couldn't fetch mysqli in D:\wwwroot\sms\dao\SysParamDao.php on line 15


回复讨论(解决方案)

他不是已经告诉你“无法连接到MySQL服务器(42.120.19.1)”了吗?
检查mysql是否启动
检查你的账户是否已经授权

他不是已经告诉你“无法连接到MySQL服务器(42.120.19.1)”了吗?
检查mysql是否启动
检查你的账户是否已经授权
是授权的
他不是一直连接不上. 是并发的有点多,然后偶尔出现这样的情况.所以也不知道是不是并发引起的.或者其他什么原因引起的.但不是一开始就无法连接的

偶尔出现就不算是问题
你可以做错误处理:在出现连不上时,等待一会比如0.5秒再连

将你的mysql的并发数改大点,或者减少php的并发请求数。

将你的mysql的并发数改大点,或者减少php的并发请求数。
嗯.怎么查询并发数  
SHOW STATUS WHERE variable_name like '%connection%';
这个?
如何修改呢?

偶尔出现就不算是问题
你可以做错误处理:在出现连不上时,等待一会比如0.5秒再连
如何等待?sleep(1); 吗?

是的,sleep 以秒为单位,usleep 以微秒为单位

设置最大并发数可以参考以下链接
http://hi.baidu.com/xiaoxvziboke/item/b8d1fc098b1a98e934990254

设置最大并发数 只能缓解当前的矛盾
如果访问量继续增大怎么办?继续修改?
如果没有权限修改怎么办?
如果增大并发数后,数据库变慢怎么办?

设置最大并发数 只能缓解当前的矛盾
如果访问量继续增大怎么办?继续修改?
如果没有权限修改怎么办?
如果增大并发数后,数据库变慢怎么办?
是用等待+增加并发权衡吧?
那这个等待,是有try catch  还是 if  else   
连接失败返回值是什么?

将你的mysql的并发数改大点,或者减少php的并发请求数。
我用 
ab -n 1000 -c 100
来测了一下.到300并发的时候自动关闭连接.
并不是我出现这样的问题

$loop = 1; //重复连接的次数do {  $db = @ new mysqli(参数略);}while($db->connect_error && $loop--);if($db->connect_error) echo $db->connect_error;



设置最大并发数 只能缓解当前的矛盾
如果访问量继续增大怎么办?继续修改?
如果没有权限修改怎么办?
如果增大并发数后,数据库变慢怎么办?
是用等待+增加并发权衡吧?
那这个等待,是有try catch  还是 if  else   
连接失败返回值是什么?

$loop = 1; //重复连接的次数do {  $db = @ new mysqli(参数略);}while($db->connect_error && $loop--);if($db->connect_error) echo $db->connect_error;




设置最大并发数 只能缓解当前的矛盾
如果访问量继续增大怎么办?继续修改?
如果没有权限修改怎么办?
如果增大并发数后,数据库变慢怎么办?
是用等待+增加并发权衡吧?
那这个等待,是有try catch  还是 if  else   
连接失败返回值是什么?
你看是不是因为我使用了默认的wait-timeout 8小时
我是不是可以设置为30秒. 30秒没进一步操作,强制关闭此链接呢?

http://www.wbsz.com/html/25425.html
这里看过来

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn