我正在尝试连接到mysql数据库,但我一直收到错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败
我知道网址是:“jdbc:mysql:// server-url:3306”
这是代码:
import java.sql.Connection;
import java.sql.DriverManager;
public class FT_Database_Connection{
private Connection connection;
public FT_Database_Connection(String url, String username, String password){
try{
System.out.println("Loading driver...");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loaded!");
String user = username;
String db_pw = password;
System.out.println(url);
System.out.println(username);
System.out.println(password);
Connection test = DriverManager.getConnection(url, user, db_pw);
}catch(Exception e){
System.out.println("Couldn't get database connection.");
e.printStackTrace();
}
}
public Connection get_connection(){
return this.connection;
}
}
有什么想法吗?
另外,Godaddy问我是否需要 DSN 。那是什么意思?我需要吗?
由于
答案 0 :(得分:2)
您需要将数据库名称放在MySQL端口(:3306 / DB_name)之后。这是我的一个关系:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQL{
static Connection connect;
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
Credentials();
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
String url = "jdbc:mysql://" + host + ":3306/" + datab;
Driver test = DriverManager.getDriver(url);
// testing to make sure i'm using the correct
//driver and further testing host
System.out.println(test);
connect = DriverManager.getConnection(url, userName, password);
System.out.println ("Connected to " + host);
}
}
您需要提供“host”和“datab”字符串值
答案 1 :(得分:0)
如果内存有效,GoDaddy可以选择几种不同的MySQL数据库实现。一个允许远程访问,一个不允许。你确定你选择了正确的吗?
您是否尝试过首先使用MySQL Workbench进行远程连接?甚至远程登陆港口?这将确保您拥有正确的数据库名称和远程连接权限。一旦你确认它有效,让代码工作应该更容易。
答案 2 :(得分:0)
我讨厌在旧的东西上添加一个新帖子,但是我遇到了与GoDaddy及其dbname.db相同的问题。######。hostedresource.com实现。当然,我查看了一些Overflow帖子,没有提到直接IP方法;希望我不会在这里打破一些GoDaddy代码。
任何人,我通过Workbench& amp;通过JDBC进入PHP管理页面并抓取直接IP到数据库 - 在我的情况下:
private static final String URL = "jdbc:mysql://11.11.111.11:3306/dbname";