`

Mysql不能连接

    博客分类:
  • JAVA
阅读更多
com.mysql.jdbc.CommunicationsException: Communications link failure due to under
lying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
        at com.mysql.jdbc.Statement.executeQuery(Statement.java:1169)
        at com.xuchenguang.Dbrw.EQ(Dbrw.java:46)
        at com.xuchenguang.SMRev.run(SmsModemRev.java:34)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
第719行:java.lang.NullPointerException
SMRev线程发现异常,丢弃!
2010-01-16 09:05:12 -DB- > 删除一个无效链接.
2010-01-16 09:05:12 -DB- > 创建一个新的链接.



http://www.wangzhongyuan.com/archives/610.html



问题分析:这个错误是Java程序没有连接上Mysql,或者链接超时导致无法进行任何与数据库相关的操作。这个错误的本质是一个网络的问题。

问题解决:首先,需要分别排查以下情况:
(1)MySql服务器是否支持TCP/IP连接;
(2)服务器端以及运行Java程序的客户端是否启用了防火墙,端口是否被占用;
(3)JDBC的驱动是否正确合适;
(4)是否启用了IPv6?如果现在使用的IPv6,那么换成IPv4再试试看;

如果上述情况都排除之后,还是出现如上的异常错误,那么很有可能是你电脑所处的网络存在问题,你可以尝试一下换个地方上网运行这个包含JDBC的Java程序,或者换个时间再次运行。

参考如下:

http://andyao.iteye.com/blog/38506

查看了Mysql的文档,以及Connector/J的文档以及在线说明发现,出现这种异常的原因是:

Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。

参考二:

http://forums.sun.com/thread.jspa?threadID=5263225



That error simply means that the database cannot be reached.

As mentioned before, the URL and/or port number can be wrong, there can be a firewall which blocks the port, or the database is simply down or does not accept TCP/IP connections.

Which operating system exactly are you using? Which database implementation and version exactly are you using? Which JDBC driver implementation and version exactly are you using?
分享到:
评论

相关推荐

    MYSQL无法远程连接

    ### MySQL无法远程连接问题解析与解决方案 #### 一、问题背景 ...综上所述,通过上述方法可以有效解决MySQL无法远程连接的问题。不过,在实施这些方案时,还需要根据实际情况灵活调整,以达到最佳效果。

    mysql不能用localhost,127.0.0.1连接,只能用ip连接 的解决方法

    总之,解决“mysql不能用localhost,127.0.0.1连接”的问题,主要涉及配置文件、用户权限、网络设置和日志分析等多个方面。根据上述步骤进行排查,应该可以找出问题所在并修复。在调整过程中,一定要谨慎,确保不降低...

    IDEA连接不上MySQL端口号占用的解决

    命令行下能正常登陆MYSQL,navicat能正常连接MySQL,但是IDEA连接不上MySQL,emmm,什么情况。。。 看了一下错误提示: 一直以为是MySQL密码或者是访问权限的问题。 困扰n天。。。 某天,突然想到3306端口号占用,...

    c# mysql数据库连接池实现

    `Pomelo`是社区维护的MySQL Entity Framework Core提供者,而`MySql.Data`则是官方提供的非Entity Framework解决方案。 2. 配置连接字符串 在应用程序配置文件(如appsettings.json)中,配置MySQL数据库的连接...

    Mac os 解决无法使用localhost连接mysql问题

    - 解决MySQL无法远程连接的方法 - MySQL出现SQL Error (2013)连接错误的解决方法 - KB967723造成MySQL频繁无法连接 - mysql服务启动却连接不上的解决方法 - mysql server 5.5连接不上的解决方法 以上这些文章提供了...

    mysql允许远程连接

    MySQL 远程连接设置 MySQL 是一个广泛使用的关系数据库管理系统,它提供了强大的数据存储和管理功能。但是,默认情况下,MySQL 帐号不允许从远程登录,只能在 localhost 登录。然而,在某些情况下,我们需要从远程...

    mysql8和mysql5的连接驱动jar包

    本篇文章将详细讨论MySQL8与MySQL5在连接驱动jar包方面的差异,以及如何使用这些驱动来连接Java应用程序。 首先,让我们关注两个不同版本的驱动包:“mysql-connector-java-5.1.30.jar”和“mysql-connector-java-...

    Mysql 连接资源Jar

    是MySQL连接器的类名,通过`Class.forName()`方法加载。 3. 创建数据库连接: ```java String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = "password"; ...

    MYSQL数据库远程连接

    MYSQL数据库远程连接,例程,需要有亦众的支持库才能编译。

    MyEclipse连接MySQL数据库报错解决办法

    一般MySQL连接不上,可能有两大原因:1、MyEclipse配置错误 2、MySQL配置不当。 一、我们一般的连接步骤如下: 1、在MyEclipse中连接MySQL数据库:依次点击window–>show view–>other–>MyEclipse Database–>DB ...

    VFP 用于连接MYSQL数据库的ODBC

    使用VFP 9.0想连接MYSQL 数据库,连接串都正确了,安装了ODBC但一直接不上,原来 是ODBC版本的问题。64位电脑安装这个ODBC驱动后,VFP就可以连接到MYSQL了。

    mysql连接驱动包

    总结来说,MySQL连接驱动包是Java开发与MySQL数据库不可或缺的桥梁,选择合适的版本取决于你的Java环境和MySQL服务器版本。这两个版本的差异主要体现在对JDBC规范的支持程度、对新MySQL特性的支持以及性能优化等方面...

    PB通过连接字符串连接MySQL

    标题中的“PB通过连接字符串连接MySQL”指的是使用PowerBuilder(PB)这个开发工具,通过特定的连接字符串来与MySQL数据库建立连接。PowerBuilder是Sybase公司(现为SAP的一部分)开发的一种可视化、面向对象的编程...

    mysql连接驱动jar包

    总结来说,MySQL连接驱动jar包是Java开发中不可或缺的部分,它使得我们可以通过JDBC API轻松地与MySQL数据库进行交互。了解其安装、配置和使用方法,以及解决可能出现的问题,是每个Java开发者必备的技能。在日常...

    fastReport连接mysql插件

    在描述中提到,“使用此插件可以完美解决FastReport不能连接mysql的问题”,这意味着FastReport原生可能不直接支持与MySQL的集成,但通过特定的插件——FastReport.MySQL.dll,开发者能够将FastReport的功能扩展到...

    Informatica连接Mysql数据库案例

    Informatica 连接 Mysql 数据库案例 Informatica 是一个功能强大的数据集成平台,支持多种数据源的连接和集成,本文档将详细介绍 Informatica 连接 Mysql 数据库的步骤和配置。 Informatica 连接 Mysql 数据库的...

    解决Linux下tomcat连接MySQL数据库

    通过这种方式,我们可以解决Tomcat在Linux环境下无法连接MySQL数据库的问题。然而,为了保持系统的安全性,务必谨慎处理权限设置,并定期审查和更新这些策略。同时,对于数据库连接,使用连接池和适当的认证机制也是...

    远程用户连接mysql授权

    ### 远程用户连接MySQL授权详解 #### 一、引言 随着互联网技术的发展与企业规模的扩大,数据库系统的远程访问需求日益增加。对于MySQL这样的关系型数据库管理系统而言,实现远程用户连接授权变得尤为重要。本文将...

    完美解决Delphi连接mysql数据库

    然而,将Delphi与MySQL集成可能会遇到一些挑战,但只要掌握了正确的方法,这些问题都可以得到完美的解决。 首先,我们需要了解如何在Delphi中添加对MySQL的支持。这通常通过使用第三方组件库完成,如ZeosLib或...

    mysql .net 连接驱动

    总结来说,MySQL .NET连接驱动为.NET开发者提供了高效、安全的途径来访问和管理MySQL数据库,无论是简单的CRUD操作还是复杂的业务逻辑,都能借助这个驱动轻松实现。通过理解并熟练使用MySql.Data.dll、MySql.Data....

Global site tag (gtag.js) - Google Analytics