> 백엔드 개발 > PHP 튜토리얼 > PHP 一直报错.而且还不能正常访问.这是什么情况PHP Warning: mysqli::mysqli()(HY000/2003)

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

WBOY
풀어 주다: 2016-06-23 14:19:52
원래의
1681명이 탐색했습니다.

[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
这里看过来

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿