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

今天在用appfuse2 strut2 modular生成一项目框架后,执行install时,报如下错误:
[code]
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.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:173)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:267)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2739)
at com.mysql.jdbc.Connection.<init>(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 **

[/code]

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

不过还是觉得很不爽,以前用windows操作系统从来都没遇到过这样的问题,就算我是一个linux的新手,但你看到上面那样的异常信息你能快速找出问题所在吗?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 下载并安装MySQL JDBC驱动程序,可以从MySQL官网下载。 2. 打开Eclipse,创建一个新的Java项目。 3. 在项目中创建一个新的Java类。 4. 在Java类中导入MySQL JDBC驱动程序,例如: ``` import java.sql.*; ``` 5. 在Java类中创建一个连接MySQL数据库的连接对象,例如: ``` Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); ``` 其中,"mydatabase"是你要连接的数据库名称,"username"和"password"是你的MySQL用户名和密码。 6. 在Java类中创建一个Statement对象,用于执行SQL语句,例如: ``` Statement stmt = conn.createStatement(); ``` 7. 在Java类中编写SQL语句,例如: ``` String sql = "SELECT * FROM mytable"; ``` 其中,"mytable"是你要查询的表名。 8. 在Java类中执行SQL语句,例如: ``` ResultSet rs = stmt.executeQuery(sql); ``` 9. 在Java类中处理查询结果,例如: ``` while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("Name: " + name + ", Age: " + age); } ``` 10. 在Java类中关闭ResultSet、Statement和Connection对象,例如: ``` rs.close(); stmt.close(); conn.close(); ``` ### 回答2: Eclipse是一款非常流行的Java集成开发环境(IDE),Java程序员可以使用Eclipse开发并运行Java应用程序、Web应用程序、桌面应用程序等。而在Java开发中,数据库的使用是必不可少的,因此Eclipse的JDBC连接MySQL也是非常常见的需求。 下面将简要介绍如何通过Eclipse连接MySQL: 1. 下载MySQLJDBC驱动程序 要连接数据库,您需要使用相应的JDBC驱动程序。 MySQL可以通过官方网站下载JDBC驱动器。选择适合您的MySQL版本的驱动程序。 2. 将JDBC驱动程序添加到Eclipse项目中 将下载的JDBC驱动程序复制到您的项目中,通常放置在“lib”文件夹中。 然后在Eclipse中导航到项目的“属性”>“Java构建路径”>“库”选项卡,并添加驱动器jar文件。 3. 在Eclipse中创建一个新类 可以在您的Eclipse项目中创建一个Java类,并在其中设置数据库连接属性。 4. 编写代码以连接MySQL数据库 在Java类中,您需要使用JDBC API连接MySQL数据库。在连接数据库之前,您需要传递以下参数: * 数据库的URL * 数据库用户名 * 数据库密码 以下是连接MySQL数据库的Java代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DbConnection { private static final String URL = "jdbc:mysql://localhost:3306/mydb"; private static final String USER = "root"; private static final String PASSWORD = "password"; public static Connection getConnection() throws SQLException { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(URL, USER, PASSWORD); System.out.println("Connected to database!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } } ``` 5. 运行应用程序 您可以运行上述Java类以连接MySQL数据库。如果您已经成功连接到数据库,您应该会收到一条“连接到数据库!” 的消息。 连接MySQL数据库是Java开发中非常关键的一步,通过Eclipse连接MySQL还是比较简单的,只需要按照上述步骤进行操作即可。当然,连接数据库不仅仅局限于MySQL,您也可以通过JDBC连接其他数据库,例如Oracle和SQL Server等。 ### 回答3: Eclipse是一个开源的集成开发环境,支持Java开发。建立Java连接MySQL数据库需要使用JDBC驱动程序,并设置数据库连接串、用户名和密码等相关信息。下面介绍使用Eclipse通过JDBC连接MySQL的步骤: 1.下载MySQL JDBC驱动程序 为了建立Java连接MySQL数据库,需要下载MySQL JDBC驱动程序。使用下面的链接下载并解压JDBC驱动程序:https://dev.mysql.com/downloads/connector/j/ 2.在Eclipse中创建Java项目 在Eclipse中创建一个新的Java项目,并在项目中添加MySQL JDBC驱动程序。右击项目,选择“Build Path” > “Configure Build Path”,在“Libraries”选项卡中添加MySQL JDBC驱动程序。 3.编写Java代码 在Java项目中创建一个新的Java类,用于建立与MySQL数据库的连接。在代码中定义MySQL数据库的连接串、端口、用户名和密码等相关信息。使用下面的Java代码建立Java连接MySQL数据库: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLConnection { public static void main(String[] args) { Connection conn = null; try { // 加载MySQL JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 定义MySQL数据库的连接串、端口、用户名和密码 String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "123456"; // 建立与MySQL数据库的连接 conn = DriverManager.getConnection(url, username, password); if (conn != null) { System.out.println("与MySQL数据库建立连接成功!"); } } catch (ClassNotFoundException e) { System.out.println("找不到MySQL JDBC驱动程序!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("与MySQL数据库建立连接失败!"); e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { System.out.println("关闭MySQL数据库连接失败!"); e.printStackTrace(); } } } } ``` 4.运行Java程序 在Eclipse中运行Java连接MySQL数据库的程序。如果一切正常,运行结果将显示与MySQL数据库建立连接成功。 总之,通过Eclipse使用JDBC连接MySQL数据库的过程比较简单,只需要下载MySQL JDBC驱动程序、在Eclipse中创建Java项目、添加MySQL JDBC驱动程序并编写Java代码即可。使用JDBC连接MySQL数据库的过程需要注意数据库连接串、用户名和密码等相关信息的设置,以及程序异常处理的规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值