`
Thomas会Coding
  • 浏览: 96663 次
  • 性别: 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
分享到:
评论

相关推荐

    CodeBlocks连接Mysql数据库解决文档

    3. 在代码中使用`mysql_options()`函数设置`MYSQL_OPT_RECONNECT`选项,以便在连接断开后自动重连,因为`caching-sha2-password`可能会在认证过程中断开连接。 为了成功完成上述步骤,你需要下载和安装合适的MinGW...

    mysql连接.net 的工具

    连接池管理数据库连接的生命周期,当连接关闭时,它不会真正断开,而是返回到连接池中供后续请求使用。 5. **异步操作** 为了提高性能和用户体验,Connector/NET支持异步操作,如`ExecuteNonQueryAsync`、`...

    C#连接mysql的Mysql.data.dll 5.0.8.1和6.2.1.0

    上述代码展示了基本的连接、断开MySQL数据库的过程。 总的来说,C#连接MySQL主要依赖于`Mysql.data.dll`这个组件,不同版本的dll可能提供不同的特性和改进。开发者需要根据项目需求选择合适的版本,并确保正确地...

    MYSQL权限不够解决办法

    如果更改了权限但仍遇到问题,请尝试断开连接并重新连接: ```sql mysql> QUIT; mysql -u root -p Passwd ``` 6. **安全注意事项** 在增加权限时要特别注意安全性,不要轻易将最高权限授予非管理员用户。...

    mysql的连接数据问题

    一、MySQL连接方式 1. 命令行连接:通过终端或命令提示符输入`mysql -u username -p`,然后输入密码,可以直接连接到MySQL服务器。 2. 图形化工具连接:例如MySQL Workbench、phpMyAdmin、Navicat等,提供直观的界面...

    mysql 异常com.mysql.jdbc.CommunicationsException

    在这个案例中,C3P0连接池中的某些连接由于长时间空闲而被MySQL服务器断开,但是C3P0连接池并不知道这些连接已经失效,当客户端再次请求这些连接时,就产生了`CommunicationsException`异常。 #### 解决方案 根据...

    MySQL Sleep连接过多问题解决方法

    MySQL数据库在运行过程中可能会遇到“Sleep”状态的连接过多的问题,这不仅会占用服务器资源,还可能导致数据库性能下降。在本文中,我们将深入探讨这个问题的原因,并提供相应的解决方法。 首先,我们来理解一下...

    关于mysql提示too many connections问题解决方法.doc

    MySQL数据库在运行过程中可能会遇到“Too many connections”的错误提示,这意味着服务器上的MySQL实例达到了其最大允许的并发连接数。此问题通常由以下两种情况引起: 1. **并发连接过多**:大量的应用程序或用户...

    Mysql数据库语句、增删该查总结及MFC对MySQL数据库连接

    6. 断开连接:完成操作后,记得使用`Disconnect()`断开与数据库的连接。 在MFC中,还需要注意线程安全问题,特别是当多个线程同时访问数据库时。此外,错误处理和异常处理也是开发过程中不可或缺的部分,确保在出现...

    排除MySQL写入与同步故障.pdf

    排除MySQL写入与同步故障 ...排除 MySQL 写入与同步故障需要对 MySQL 服务器进行定期维护和检查,避免磁盘空间不足、网络连接断开等问题的出现。同时,需要使用mysqldump命令备份数据库,避免数据丢失。

    MySQL 8.0 参考手册教程pdf

    在本教程中,我们将深入探讨几个关键知识点,包括如何使用mysql客户端,连接和断开与服务器的连接,以及创建和管理数据库。 首先,mysql客户端程序是与MySQL服务器进行交互的主要工具,它允许用户运行SQL查询并查看...

    mysql-connector-java-8.0.27

    15. **配置文件**:可以通过`my.cnf`或`my.ini`文件配置MySQL连接参数,如最大连接数、超时时间等。 在开发过程中,正确配置和使用MySQL Connector/J 8.0.27对于提升Java应用与MySQL数据库交互的效率和稳定性至关...

    MySQL驱动包.zip

    8. **存储过程和函数调用**:允许执行MySQL的存储过程和函数,并处理返回的结果。 9. **元数据获取**:提供方法获取数据库和表的元数据信息,便于动态构建SQL语句或进行数据库版本检查。 10. **错误处理和日志记录...

    PHP错误Warning:mysql_query()解决方法

    2. **合理管理数据库连接**:检查代码中所有的数据库连接和断开操作,确保没有重复关闭已经关闭的连接,或者在不应该关闭连接的地方进行了关闭。 3. **单例模式**:通过实现单例模式来控制数据库连接的创建,确保...

    MySQL 教程.pdf

    如果在使用MySQL过程中遇到问题,教程中提到的MySQL论坛是一个很好的资源,可以在那里与其他用户讨论并找到解决方案。 9. **版本信息** 本教程基于MySQL 8.0,这意味着它反映了该版本的新特性和改进。随着MySQL的...

    C#连接Mysql数据库经典示例

    本教程将详细讲解如何使用C#语言连接到Mysql数据库,通过具体的示例来帮助理解这一过程。 首先,确保你已经安装了Mysql数据库服务器,并创建了一个数据库以及对应的表。同时,C#开发环境中需要引入MySql数据提供者...

    MYSQL

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

    mysql 无法连接问题的定位和修复过程分享

    默认情况下,PHP的最大执行时间为30秒,超过这个时间会被中断,从而导致MySQL连接断开。解决方法是修改`php.ini`文件,将`max_execution_time`设置为更长的时间,如300秒,或设为0以取消限制。 另一个导致MySQL无法...

    mysql占用率达到99%

    在服务器运维过程中,遇到MySQL数据库服务占用率高达99%的情况时,这通常意味着数据库服务正在面临严重的问题,可能导致整个系统的响应时间增加,甚至出现服务不可用的情况。本篇文章将基于给定的案例,详细探讨这一...

Global site tag (gtag.js) - Google Analytics