用Java连接MySQL DB

时间:2016-09-25 19:16:47

标签: java mysql database web-hosting

我正在通过000WebHosting.com运行数据库。当我尝试连接到我的数据库时,出现以下错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

这是我的代码:

String url = "jdbc:mysql://" + "mysql2.000webhost.com/";
try
{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection(url + "DB_NAME", userName, passWord);
} 
catch (InstantiationException | IllegalAccessException | SQLException e)
{
    System.out.println(e);
}

conn行继续出现异常。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试像这样初始化数据库连接(将您的数据库名称放在URL中):

final static String HOSTNAME = "yourdomain.com";
final static String PORT = "3306";
final static String USER = "youruser";
final static String PWD = "yourpassword";
final static String DBNAME = "dbname";

public java.sql.Connection setupConnection() {

    java.sql.Connection conn = null;

    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    System.out.println("Connection is being established...");

    String url = "jdbc:mysql://" + HOSTNAME + ":" + PORT + "/" + DBNAME +
                "?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
    try {
        conn = DriverManager.getConnection(url, USER, PWD);
    } catch (SQLException e) {
        e.printStackTrace();
    }

    System.out.println("Database connection successfully established!");

    return conn;
}

答案 1 :(得分:1)

  1. 检查您的MySQL数据库服务器是否已托管/启动/启用。
  2. 检查连接数据库输入的用户名和密码是否正确。
  3. 检查您的网络服务器的构建路径和lib文件夹中是否包含MySQL jar文件,例如: Tomcat的
  4. 检查连接数据库的URL是否正确。
  5. 也可以进行此更改并查看

      

    String url =“jdbc:mysql://mysql2.000webhost.com/”;

    我也发现了这个

    来自000webhost的MySQL不允许您从外部应用程序连接,只允许从其域中托管的页面内部进行连接。

    请检查:How can I connect to MySQL from my computer?