我正在通过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
行继续出现异常。
我做错了什么?
答案 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)
也可以进行此更改并查看
String url =“jdbc:mysql://mysql2.000webhost.com/”;
我也发现了这个
来自000webhost的MySQL不允许您从外部应用程序连接,只允许从其域中托管的页面内部进行连接。