MySQL服务器的消失是两个有效的解决方案。针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的小伙伴找到更简单易行的方法。
当然,第一种方法是增加等待超时值。这个参数是在my . CNF(Windows下的my.ini)中设置的,我的数据库负载稍微大一点,所以我设置了值10,(这个值的单位是秒,也就是说如果一个数据库在10秒内没有任何操作就连接了,就会被强制关闭。我使用的不是永久链接(mysql_pconnect),而是mysql_connect。您可以在MySQL的进程列表(显示进程列表)中看到这个等待超时的效果。您可以将此等待超时设置得更长,例如300秒。呵呵,一般来说300秒就够了。事实上,你不需要设置它。MySQL默认为8小时。具体情况取决于您的服务器和站点。
第二种方法:
这也是我个人认为最好的方法,就是检查MySQL的链接状态,重新链接。
但是我们都知道有mysql_ping这样的功能。在很多资料中,都说mysql_ping的API会检查数据库是否链接,如果断开,会尝试重新连接。然而,在我的测试中,我发现事实并非如此。它是有条件的,相关参数必须通过mysql_options的C API传递。让MYSQL有断开自动链接的选项(MySQL默认不自动连接),但是我发现PHP的MySQL API没有这个功能。请重新编辑MySQL,呵呵。但是mysql_ping函数终于可以用了,只需要一点操作技巧:
这是我的数据库操作类中间的一个函数。
函数ping(){ 0
if(!MySQL _ ping($ this-link)){ 0
MySQL _ close($ this-link);//注意:必须先进行数据库关闭,这是关键。
$this-connect($this-t_dbhost,$this-t_dbuser,$this-t_dbpw,$this-t_dbname,$ this-t _ pconnect);
}
}
我需要调用这个函数的代码可能如下所示。
for($ I=0;$ i10I){ 0
$ str=file _ get _ contentshttp://www . AOL.com;);
}
$ db-ping();//上一次网页抓取后,可能会关闭、检查并重新连接数据库连接。
$ db-query;从表格中选择*;);
ping()函数首先检查数据连接是否正常。如果关闭,当前脚本的MYSQL实例将完全关闭,然后重新连接。
经过这种处理,MySQL服务器已经不存在的问题可以得到有效解决,不会给系统造成额外的开销。
关于MySQL服务器的两个有效解决方案已经消失的问题的答案将在这里分享。我希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132525.html