1.下载mysql-connector-java-3.1.12-bin.jar,据说weka不支持太高的版本,所以我下载这个比较早期的版本.
2.将mysql-connector-java-3.1.12-bin.jar加入到classpath中.
在windows中:我的电脑/属性/高级/环境变量/在classpath的最后加上;/YourPath/mysql-connector-java-3.1.12-bin.jar
在Linux中,su - vi /etc/profile,在classpath最后加上:/YourPath/mysql-connector-java-3.1.12-bin.jar
Windows最好重启一下,Linux退出控制台,然后再进入控制台即可.
3.(本步不是必须的).提取DatabaseUtils.props,解压weka.jar,将experiment/DatabaseUtils.props拷贝到weka的安装目录下.其它的文件可删除.修改DatabaseUtils.props,(以Linux为例,Windows可参照进行)
1)在jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mckoi....这行前加一个#号注释掉.
2)去掉jdbcDriver=org.gjt.mm.mysql.Driver前面的#.
3)在#jdbcURL=jdbc:idb=experiments.prp前加#号,注释掉本行.
4)jdbcURL=jdbc:mysql://localhost:3306/test去掉本行前的#号,使之起作用.
4.此时应该能正常使用WeKa的数据库功能.点击Explorer时如果提示找不到org.gjt.mm.mysql.Driver,将mysql-connector-java-3.1.12-bin.jar拷贝到$JAVA_HOME/jre/lib/ext/下面即可.
5.链接数据库成功后,如果数据库表字段与weka不同时,要在DatabaseUtils.props里做转换,方法如下:
1)weka连接数据库
2)desc tableName,这样就知道了该表中有什么字段.对照DatabaseUtils.props中已经定义的转换,就知道还有什么字段是没转换的.
3)查找TIMESTAMP=8,然后将要转换的字段列在下面:
========
TIMESTAMP=8
BLOB=1
.....
========
4)如果字段名里有空格,用下划线或反斜线代替空格即可,如:
INT_UNSIGNED=5