以下是我尝试连接的方式:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception e) {
throw new DbConnectionException();
}
try {
connection = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
throw new DbConnectionException();
}
我100%确定网址,用户名,密码字符串是否正确。我已经使用外部工具(MySQL查询浏览器)成功连接。 这是我收到的错误:
com.mysql.jdbc.CommunicationsException: 由于通信链路故障 潜在的例外:
**开始没有异常**
java.net.SocketException消息: java.net.ConnectException:连接 拒绝
...
答案 0 :(得分:7)
可能是url
问题。如果您的代码指向MySQL localhost
,请尝试将您的网址上的localhost
更改为127.0.0.1
。
E.g:
jdbc:mysql://localhost:3306/MY_DB
到
jdbc:mysql://127.0.0.1:3306/MY_DB
看看是否有效。
答案 1 :(得分:1)
你是从运行代码的同一台机器上运行mysql浏览器的吗?我得到的是mysql中的权限可以是特定于主机的,并且根据您设置它们的方式,您可能无法从运行代码的机器进行连接。
此外,您可能需要再次检查url,name,pword,可能还有日志语句或调试器,以确保没有拼写错误,尾随空格等...
答案 2 :(得分:1)
仔细检查您的网址格式。它应该以“jdbc:mysql:”开头。确保您也使用当前版本的驱动程序。
答案 3 :(得分:0)
检查您是否可以从mysql管理工具连接到数据库,这将驱逐您的mysql是否正在运行以及该端口是否已打开。
答案 4 :(得分:0)
在我的情况下,问题是我使用了从模拟器到localhost的连接。
如果您将模拟器用于localhost,请不要在连接字符串中使用localhost
值,而是使用10.0.2.2
代替:
jdbc:mysql://10.0.2.2:3306/MY_DB
希望这有帮助。