2010-07-15 52 views
0

我正在尝试使用“mysql-connector-java-5.1.13”连接Mysql。我已经下载并将其放到我正在Netbeans上工作的项目的lib中。我找到了一个免费的主机并创建了Mysql数据库。现在我正在尝试下面的代码;如何使用Java连接Mysql?

import java.sql.*; 

    public class MysqlConnect 
    { 
     public static void main (String[] args) 
     { 
      Connection conn = null; 

      try 
      { 
       String userName = "a6990612_jdict"; 
       String password = "0jdict"; 
       String url = "jdbc:mysql://216.108.239.44:3306/a6990612_jdict"; 
       Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
       conn = DriverManager.getConnection (url, userName, password); 
       System.out.println ("Database connection established"); 
      } 
      catch (Exception e) 
      { 
       System.err.println ("Cannot connect to database server"); 
      } 
      finally 
      { 
       if (conn != null) 
       { 
        try 
        { 
         conn.close(); 
         System.out.println ("Database connection terminated"); 
        } 
        catch (Exception e) { /* ignore close errors */ } 
       } 
      } 
     } 
    } 

但异常捕获,它说:无法连接到数据库服务器。

是否有与url的问题,因为我不知道我会放在那里,我把我的免费主机的IP地址。

任何想法如何连接Mysql?提前致谢!

+2

您需要查看异常的详细信息。尝试将catch块更改为e.printStackTrace();并添加到你的问题。 – Dunderklumpen 2010-07-15 01:03:03

+1

添加到先前的评论: 更改此行 - System.err.println(“无法连接到数据库服务器”) - e.printStackTrace() – Cambium 2010-07-15 01:07:49

+0

可能重复[连接到MySQL数据库。](http:// stackoverflow .COM /问题/ 1640910 /连接到一个MySQL的数据库) – 2010-07-15 01:10:07

回答

1

我会尝试验证用户名/密码和主机与不同的工具(也许是MySQL命令行工具)。

1

打印出消息而不是堆栈跟踪是愚蠢的。这样写:

import java.sql.*; 

    public class MysqlConnect 
    { 
     public static void main (String[] args) 
     { 
      Connection conn = null; 

      try 
      { 
       String userName = "a6990612_jdict"; 
       String password = "0jdict"; 
       String url = "jdbc:mysql://216.108.239.44:3306/a6990612_jdict"; 
       Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
       conn = DriverManager.getConnection (url, userName, password); 
       System.out.println ("Database connection established"); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
      finally 
      { 
       if (conn != null) 
       { 
        try 
        { 
         conn.close(); 
         System.out.println ("Database connection terminated"); 
        } 
        catch (Exception e) { /* ignore close errors */ } 
       } 
      } 
     } 
    } 

我猜驱动器类没有找到;你会得到一个ClassNotFoundException。

将MySQL连接器JAR放入/ lib是不够的;您必须将其添加到Netbeans中的运行时类路径中。也许你应该考虑一下。

我建议先在本地实例上试试你的代码,以确保它能正常工作。如果确实如此,并且连接到托管数据库失败,则会发现问题仅出在托管问题上。

3

检查您的网站主机是否允许您进行远程连接。如果您有权访问ssh,请检查您的my.cnf配置是否允许您远程连接。