1.安装WEKA和Mysql
2.下载JDBC驱动jar包
下载完后,在weka安装目录下新建lib文件夹,我的是E:\Program Files\Weka-3-8\,将jar包放进去。并且在jdk安装目录下的jre中的lib\ext文件夹下也加入jar包(我感觉将jar放在jdk的jre中这个是 多余的步骤)。
我的是E:\Program Files\Java\jdk1.8.0_60\jre\lib\ext
3. 设置环境变量
此处环境变量的配置和JDK一样,首先新建WEKA_HOME
修改path在前面加上%WEKA_HOME%\lib\mysql.jar
然后在path添加%JAVA_HOME%\ext\lib\mysql.jar(感觉这个也是多余)
4.修改weka.jar包
这里只是稍微修改配置文件,所以只要使用解压工具打开在\weka.jar\experiment里面找到DatabaseUtils.pros将其备份为其他名字,我改为了DatabaseUtils.props.bak
然后将DatabseUtils.pros.mysql重命名为DatabaseUtils.pros,并修改其内容:
改为
# JDBC driver (comma-separated list)
jdbcDriver=jdbcDriver=com.mysql.jdbc.Driver
# 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
BigDecimal,getBigDecimal()=11; -->nominal
然后添加如下内容:
TINYINT=3
SMALLINT=4
SHORT=5
INTEGER=5
INT=5
INT_UNSIGNED=6
BIGINT=6
LONG=6
REAL=7
NUMERIC=2
DECIMAL=2
FLOAT=2
DOUBLE=2
CHAR=0
TEXT=0
VARCHAR=0
LONGVARCHAR=9
BINARY=0
VARBINARY=0
LONGVARBINARY=9
BIT=1
BLOB=8
DATE=8
TIME=8
DATETIME=8
TIMESTAMP=8
其他的暂时无需修改,保存。
网上的很多文章到这一步就去运行weka,我也试了一下发现没有办法找到jdbc.driver,没办法连接上数据库。结果我再查资料,再做如下的操作,就可以正常连接了。
5、打开runWeka.ini文件,到文件尾部
在文件尾部添加驱动器的引用(之前下载的驱动文件位置)
cp=%CLASSPATH%;E:\ProgramFiles\Weka-3-8\lib\mysql.jar
保存后运行weka
如果出现下面的情况。
如果连接数据库不成功:如果没有连接上数据库,不要着急。按如下顺序依次检查可能产生问题的设置:数据库驱动程序是否正确?CLASSPATH的设置是否正确?配置文件中jdbcDriver和jdbcURL两项配置是否正确拼写?配置文件是否放到正确位置?数据库用户名和密码是否正确?该数据库用户是否拥有足够权限?数据库是否已经启动?等等。
一切步骤成功以后发现下面问题:
发现出现了这个问题(尴尬):
错误原因:jdbc:mysql://localhost:3306/test 一定要把数据库名和servername改成自己的!!
最后成功。