【发布时间】:2011-09-08 10:24:54
【问题描述】:
所以我将 MySQL Connector/J 5.1.16 添加到我的项目的构建路径中。我正在使用默认的 OSX Java 包和 MAMP Pro 1.9.4 以及 MySQL 5.1.44 和 Eclipse。
我已经建立了一个简单的 java 应用程序,具有以下功能:
private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/mpp";
private static String dbUsername = "root";
private static String dbPassword = "root";
private Statement statement = null;
private void dbConnect() {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
statement = connection.createStatement();
} catch(SQLException e) {
System.err.print(e.getMessage() + " ARGH!");
} catch(Exception e) {
System.err.print(e.getMessage() + " FUUUUUUUUUU!");
}
}
当我运行它时,我收到以下错误:
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. ARGH!
我用谷歌搜索了大约一个小时,但没有成功。有想法该怎么解决这个吗? JDBC驱动应该没问题,我测试了一下。
编辑
我尝试通过控制台运行它
SnowCave:src stefanschipor$ java -cp $CLASSPATH test
我得到与上面相同的输出
【问题讨论】:
-
可能是防火墙问题。 dbUrl 是否正确?你能通过一些客户端控制台连接到 MySQL 吗?
-
在你的情况下默认端口 localhost:3306
-
@Farshid 更新了帖子,同样的事情 :)
-
不,我的意思是不用你的代码连接到 MySQL 实例。
-
是的,它有效。 mysql exec 在 MAMP 文件夹中,但这应该不是问题。