MYSQL 连接超时问题

来源:互联网 发布:福建榕基软件 编辑:程序博客网 时间:2024/04/28 08:38

前不久维护了一个网站项目, 项目的后台设计是网站管理者进入网站后台连接,第一步就是创建数据库,只需按照提示输入:IP 地址(即在那个IP 地址的主机上创建数据库)、用户名、密码、端口号(即所在IP 地址的主机上安装的MYSQL 的用户名、密码和端口号)、数据库的名字这5项内容,然后就开始自动创建数据库,创建成功自动转到后台管理页面。(当然我们已经把数据库脚本文件事先放置到打包文件的一个地方,用户的这个操作其实就是自动导入数据库的功能)。

在处理这5项输入的时候遇到了一点小问题:因为设计这些参数的输入,如果用户的输入不正确,比如数据库的用户名或者密码输入错误,这个时候是要抛出异常,从而提示用户采取相应的操作。我在设计异常的时候发现如果用户的:用户名、密码、端口号 输入错误的话,那么系统很快就抛出错误的提示了;而IP地址输入错误的话系统就好像进入了死循环一样,一直在等待,没有任何反应。看到这个问题我首先想到的是看看MYSQL 登录时如果IP 地址输入错误会是什么样子。所以在登陆本机MYSQL 的时候我故意输入了一个不存在的IP ,结果是登陆MYSQL 的过程也是没有任何反应,一直处于登陆状态,10分钟过去了也没有任何提示出来,而不像用户名或者密码端口号输入错误一样MYSQL立即就给出了提示。通过这个对比我就想,MYSQL怎么也没有抛出异常呢?人家这么有名的软件这个地方都没有处理,我肯定也处理不了的。所以这个地方一直拖着没有完工,自以为自己有很冠冕堂皇的理由。后来经理给了我提示说,那你可不可以设置个超时时间?如果连接数据库的操作在一定时间内没有反应的话那么就抛出超时异常!我恍然大悟,于是立即查找有关连接超时时间的参数,很快便查到了waittimeout这个参数(还有一个参数,两者设置其中任一即可,忘记了)接着问题便解决了。

通过这个过程我发觉两点问题:1,要善于运用不同的思维去考虑一个问题;不要迷信权威也不要否定权威。2,要善于查找文档。