我有这个小代码:
import groovy.sql.Sql
class GroovySqlExample1{
static void main(String[] args) {
def sql = Sql.newInstance("jdbc:mysql://localhost/jdb", "root",
"root", "com.mysql.jdbc.Driver")
sql.eachRow("select * from user"){ row ->
//other code . . . .
}
}
}
当我使用:
运行以下代码时 groovy -cp mysql-connector-java-5.1.18-bin.jar database.groovy
我收到了这个大错误:
Caught: 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.
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.
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at GroovySqlExample1.main(database.groovy:4)
Caused by: java.net.ConnectException: Connection refused
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
... 9 more
请注意,我可以登录mysql:
mysql -u root -proot -hlocalhost
一切似乎都很好。但我仍然得到那些错误。我正在使用Ubuntu 12.04。我在哪里弄错了?
答案 0 :(得分:0)
您应该为MySQL DB指定端口号,因为JDBC永远不知道每种类型的DB使用哪个端口号。对于MySQL,我认为默认端口号应设置为3306