linux创建jdbc连接mysql_linux下通过JDBC连接MySQL的一个意想不到的问题

在Linux环境中,通过JDBC连接MySQL时遇到了Communications link failure的问题,原因是MySQL配置文件my.cnf中的bind-address设置不当。解决方法是将bind-address改为localhost,确保与项目中的数据库连接配置一致。此问题在Windows系统中未出现。
摘要由CSDN通过智能技术生成

ERROR [main] SchemaExport.execute(202) | schema export unsuccessful

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException

MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)

at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

at java.net.Socket.connect(Socket.java:519)

at java.net.Socket.connect(Socket.java:469)

at java.net.Socket.(Socket.java:366)

at java.net.Socket.(Socket.java:209)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:173)

at com.mysql.jdbc.MysqlIO.(MysqlIO.java:267)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:2739)

at com.mysql.jdbc.Connection.(Connection.java:1553)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:154)

at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)

at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:28)

at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)

at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)

at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:112)

at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:140)

at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:280)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

** END NESTED EXCEPTION **

然后急忙查看mysql日志,没看到任何相关的东西,然后又看是不是hibernate3的maven插件有问题,google了半天没发觉有任何相关问题的信息,最后想起了昨天发现的Debian/ubuntu下mysql默认只能从本地连接的解决方法,我将my.cnf中的bind-address改为了我的ip地址而不是默认的localhost,而我项目中的数据库连接是通过localhost连接的,于是我将bind-address改为默认的localhost后重启mysql,重新执行mvn install,一切ok拉

966903dea4bcb507358d5dcce8b912e5.gif

不过还是觉得很不爽,以前用windows操作系统从来都没遇到过这样的问题,就算我是一个linux的新手,但你看到上面那样的异常信息你能快速找出问题所在吗?

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2007-12-12 22:52

浏览 2944

评论

1 楼

eileandour

2008-01-13

我在Windows环境也出现同样的问题。。。 Appfuse的JIRA上面说是因为JDBC的版本问题http://issues.appfuse.org/browse/APF-699 但是实际上我已经是5.0.5版本了。。。 请教要如何解决。。。 感谢

0956f0a970daab536ce4be0ee96b00ac.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值