2012-09-17 71 views
2

我在使用WEKA尝试连接MySQL DB时遇到JDBC连接问题。WEKA - JDBC连接异常

这里是我的DatabaseUtils.properties文件:

jdbcDriver=com.mysql.jdbc.Driver 
jdbcURL=jdbc:mysql://localhost:3306/mydb 

并且我增加了JDBC-mysql的水罐里的路径:

/opt/SenchaSDKTools-2.0.0-beta3:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/talha/apache-maven-3.0.4/bin:/home/talha/mysql-connector-java-5.1.20.jar:/opt/SenchaSDKTools-2.0.0-beta3:/home/talha/apache-maven-3.0.4/bin:/usr/lib/jvm/jdk1.7.0_05/bin:/home/talha/apache-maven-3.0.4/bin 

的Java Class [一个简单的测试类]

public class Test { 

    public static void main(String[] args) throws Exception { 

     InstanceQuery query = new InstanceQuery(); 
     query.setUsername("username"); 
     query.setPassword("password"); 
     String sql = "select * from user"; 
     query.setQuery(sql); 
     // if your data is sparse, then you can say so too 
     // query.setSparseData(true); 
     Instances data = query.retrieveInstances(); 

    } 

} 

完整堆栈跟踪:

Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error, not in CLASSPATH? 
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH? 
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Error, not in CLASSPATH? 
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Error, not in CLASSPATH? 
Disconnected from the target VM, address: '127.0.0.1:33305', transport: 'socket' 
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:idb=experiments.prp 
    at java.sql.DriverManager.getConnection(DriverManager.java:604) 
    at java.sql.DriverManager.getConnection(DriverManager.java:221) 
    at weka.experiment.DatabaseUtils.connectToDatabase(DatabaseUtils.java:521) 
    at weka.experiment.InstanceQuery.retrieveInstances(InstanceQuery.java:286) 
    at weka.experiment.InstanceQuery.retrieveInstances(InstanceQuery.java:271) 
    at com.tk.miner.Test.main(Test.java:22) 
+0

您是否在您的eclipse类路径中添加了jdbc-mysql jar? – Ami

+0

我正在使用IntelliJ Idea,并将jdbc-mysql依赖项添加到我的pom.xml文件中。顺便说一下DatabaseUtils.props位于src/main/resources下。 – talha06

+0

它为什么要加载'jdbc:idb = experiments.prp'?哦,你的'PATH'是一团糟**。 –

回答

5

据的JavaDoc InstanceQuery默认为 “jdbc.idbDriver” 和 “JDBC:IDB = experiments.prp”。

您可以用DatabaseUtils.properties文件覆盖它们。尝试将DatabaseUtils.props放入user.home(/ home/talha /?)或当前目录(在Eclipse当前目录中是包含src文件夹的项目文件夹 - 不知道它在IntelliJ Idea上的位置)。

+0

非常感谢hkn,你救了我的一天!实际上我从某处(我不记得)将这个文件放在WEKA_HOME/props中,这意味着user.home/wekafiles/props。再次感谢您纠正错误的信息。 – talha06

+3

根据http://weka.wikispaces.com/Properties+File,Weka版本确定路径:( = Weka 3.7.2)$ WEKA_HOME /道具 – hkn

+0

你也拯救我的一天! <3 – Lorenzo