mysql WEKA 3.7和3.6/找不到适合的驱动程序

xe55xuns  于 2022-12-10  发布在  Mysql
关注(0)|答案(5)|浏览(172)

似乎有几篇关于使用Weka作为程序实现的帖子,但似乎很少有帖子与使用Weka 3.7/3.6和数据库进行数据挖掘有关。
我指的是韦卡的网站。(http://weka.wikispaces.com/Databases)
为了连接Weka和数据库,我所做的是...

1)下载适用于MySQL的JDBC驱动程序(mySQL-Connector-Java-5.1.34-bin.jar)
2)将CLASSPATH设置为“用户环境变量的C:\Program Files\Weka-3-7\mysql-connector-java-5.1.34-bin.jar”
3)打开RunWeka.ini文件,将最后一行改为“cp=%CLASSPATH%;C:\Program Files\Weka-3-7\mysql-connector-java-5.1.34-bin.jar”“(我指的是”http://blog.ahughes.org/?p=347“)

但是,WEKA 3.7仍然会产生没有合适的驱动程序错误。我用Weka 3.6试了试,但徒劳无功。
Weka的网站上面似乎提供了一些陈旧的信息,有些信息似乎与Weka 3.6或更高版本无关。
如果你能给我任何见解,我将不胜感激。

  • 编辑*

(WEKA & MySQL Setup a connection)这个人似乎遇到了同样的问题,但遵循这个页面的答案并没有解决我的问题……

sigwle7e

sigwle7e1#

根据数据库配置的故障排除部分,有3个可能的错误可能会给您带来“没有合适的驱动程序例外”。
1.您的JDBC驱动程序未在CLASSPATH中设置。通过SimpleCLI执行命令‘Java weka.core.SystemInfo’,可以确定这是否是问题所在。如果属性‘java.class.Path’只有条目‘./weka.jar’,则只需将CLASSPATH环境变量设置为“.;C:/PATH_TO_JDBC.jar”。重新运行上述命令,在‘java.class.path’中,您现在应该看到‘java.class.path:./weka.jar;.;C:/Path_to_jdbc.jar’。
1.jdbcDriver属性可能拼写错误,或者您在DatabaseUtils.props中多次使用它(它必须是唯一的)
1.jdbcURL属性拼写错误,或者您在DatabaseUtils.props中多次使用它(它必须是唯一的)
最后注意:如果您使用的是Weka(>=3.7.2),则必须将DatabaseUtils.props文件放在‘C:\USERS*USERNAME*\wekafiles\props’下

epfja78i

epfja78i2#

在使用Weka Explorer图形用户界面时,我遇到了这个错误。我仔细检查了一下:
执行WEKA的CLASSPATH中包含JDBC驱动程序
1.使用正确的DatabaseUtil.prop文件。在我的例子中,我使用了SQLite版本,将其重命名(从其末尾删除了SQLite),并将其放置在~/wekafiles/props中,然后编辑其数据库地址以指向我的数据库
1.打开WEKA后,确保数据库地址与PROP文件中的地址相同
1.清除连接后,在单击确定之前,我必须在文本字段中添加一个SQL查询。**这是为我做的。**在没有查询的情况下,按OK会导致一个错误,说没有找到适合[Nothing]的驱动程序,即使驱动程序地址是绝对正确的。
希望这能帮上忙。

vlurs2pr

vlurs2pr3#

我所做的最简单的方法是:在现有的JAVA_HOME/jre/lib/ext/文件夹中添加mysql-Connector.jar并重新启动Weka。顺便说一句,我用的是WEKA-3-8-2,这个方法100%有效。还有一件事,不要忘记为数据库连接分配正确的URL和驱动程序[保存在对当前系统用户具有读写权限的位置]。

2fjabf4q

2fjabf4q4#

执行上述语句后,请确保Map同一DatabaseUnits.props文件中的属性类型,因为Java不会将MySQL数据类型关联到Weka。

# specific data types
#  string, getString() = 0;    --> nominal
#  boolean, getBoolean() = 1;  --> nominal
#  double, getDouble() = 2;    --> numeric
#  byte, getByte() = 3;       --> numeric
#  short, getByte()= 4;        --> numeric
#  int, getInteger() = 5;       --> numeric 
#  long, getLong() = 6;        --> numeric
#  float, getFloat() = 7;      --> numeric
#  date, getDate() = 8;        --> date
#  text, getString() = 9;     --> string
#  time, getTime() = 10;       --> date
#  timestamp, getTime() = 11;  --> date

INT=0    
CHAR=0    
VARCHAR=0    
DOUBLE_PRECISION=2

等等.。
好工作

bxpogfeg

bxpogfeg5#

你把你的“DatabaseUtils.props”放到你的主目录里了吗?
我在SQL数据库上遇到了同样的问题,我使用了JDBC-ODBC桥,它起作用了,看看你是否可以用MySQL做同样的事情。

相关问题