`
Thomas会Coding
  • 浏览: 93593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 连接断开解决的过程

 
阅读更多

今天在写一个小的管理系统的时候,老是遇见一个问题,数据库连接断开导致空指针的现象出现。

以前写管理系统的时候从没见过,于是就各种找原因。

首先把开发环境报的错误

Communications link failure due to underlying exception!

 直接复制到万能的百度上面,找了几个之后发现都是说数据库超时引起的。

可当时觉得连接自己的数据库没有问题,怎么一连接远程的数据库就不行。不是很确定。数据最能说明问题

于是我查了一下数据库擦看连接时间的命令

show variables like '%timeout%';

 结果如下



 可以看到数据库的连接时间会保持8个小时。用同样的命令查看了远程的数据库发现其连接时间只有10秒钟。好了,现在确定是连接时间的问题了。

知道问题后,解决方法也有了。

第一:修改远程数据库的连接时长。

第二:修改程序代码

第一种方法立马被否了,毕竟不是我的数据库,不能xjb乱改。

只能苦逼的改代码了。

以前用的数据库连接根深蒂固的以为单例就是最好的,保持数据库始终只有一个连接。其实这个思路是正确的,因为普通你没有修改过连接时间的话,这个时长已经很长了,如果你保存多个连接,很可能会造成数据库的性能下降。可是现在的问题是一个连接只能保持10s。根本没必要手动关闭。所以最后代码被改成了只要进行查询就初始化一个连接,查询结束后手动关闭。自此。问题完整解决。

附带一条命令

show full processlist

命令的作用是查看数据库的当前连接情况。

 

  • 大小: 6.3 KB
分享到:
评论

相关推荐

    MYSQL

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的组间...

    mysql连接过多和死掉以及拒绝服务的解决方法

    mysql连接过多导致总是死掉,后来网上搜索发现此文自Mysql 5.x的某个版本之后,Mysql的自动关闭空闲连接的特性修改了,如果一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被...

    MySQL中文参考手册.chm

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的...

    MySQL中文参考手册

    + 4.12.5 用 SSH 从 Win32 连接一个远程MySQL + 4.12.6 MySQL-Win32与Unix MySQL 比较 o 4.13 OS/2 注意事项 o 4.14 TcX 二进制代码 o 4.15 安装后期(post-installation)的设置与测试 + 4.15.1 运行mysql_...

    MySQL 5.1官方简体中文参考手册

    目录 前言 1. 一般信息 ...3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 ...

    MySQL 5.1参考手册

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. ...

    mysql5.1中文手册

    连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理...

    MySQL 5.1参考手册中文版

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql ...

    MySQL 5.1参考手册 (中文版)

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. ...

    MYSQL中文手册

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql...

    mysql官方中文参考手册

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. ...

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    解决了绑定后端连接断开时,客户端连接未及时断开的问题 屏蔽了KILL语句,避免在后端MySQL可能误KILL的问题 修改了事务内语句执行错误时,DBProxy未保留后台连接导致rollback发送到其它结点的问题...

    MySQL5.1参考手册官方简体中文版

    3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. ...

    PHP和MySQL Web开发第4版pdf以及源码

    11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理...

    PHP和MySQL WEB开发(第4版)

    11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理 12.1 ...

    PHP和MySQL Web开发第4版

    11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理...

    php网络开发完全手册

    15.3.1 数据库服务器的连接与断开 241 15.3.2 选择数据库 242 15.3.3 执行SQL语句 242 15.3.4 获得查询结果集中的记录数 243 15.3.5 获得结果集中的某一条记录 244 15.3.6 逐行获取结果集中的每一条 15.3.6 记录 245...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:断开与当前数据库的连接并会退出 用法:exit 6. 编辑脚本(edit/ed) 说明:编辑指定或缓冲区的sql脚本 用法:edit [文件名] 列子: 7. 运行脚本 (start/@) 说明:运行指定的sql脚本 用法:start/@ 文件名 ...

    易语言程序免安装版下载

    6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...

Global site tag (gtag.js) - Google Analytics