Android连接Mysql数据库:Communications link failure

一般有两种情况:

一种是:也是绝大多数情况  MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常,java的线程池还保有引用。

这时候就需要在mysql中修改wait_timeout的值

  set global wait_timeout = 604800;  //设置等待时间为一周 7x24x60x60

再重启mysql服务即可

第二种情况:  是由于连接数据库时没有放在线程里,而Android是不赞成在主线程中进行耗时操作的

当发现报Communications link failure错时,也以为是前面那种情况,但是搜遍教程都不行,后来检查才发现是耗时操作问题

但是开启线程获取数据时,是不允许在子线程中更新UI的,因此无法将获取的数据显示到控件上。

这是就需要用到异步了,教程参考小猪的AnsyncTask异步任务教程

 http://www.runoob.com/w3cnote/android-tutorial-ansynctask.html  或者 第一行代码第2版

猜你喜欢

转载自www.cnblogs.com/YangVan/p/9148093.html