欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Weka连接MySQL数据库及连接失败问题解决

程序员文章站 2022-06-08 18:00:58
WEKA连接数据库的教程,网上有很多,百度一下就可以找到。 一、软件环境 (1)Weka3.8 (2)MySQL5.7.14(实际上我在之前写WEB相关的内容时下载的Wamp...

WEKA连接数据库的教程,网上有很多,百度一下就可以找到。

一、软件环境

(1)Weka3.8

(2)MySQL5.7.14(实际上我在之前写WEB相关的内容时下载的WampServer,其中已经包含了该版本MYSQL)

(3)mysql-connector-java-5.1.45(下载地址:https://dev.mysql.com/downloads/connector/j/)

二、安装步骤

1、安装weka和mysql

2、下载连接驱动程序

? (1)weka连接mysql数据库需要连接驱动程序mysql-connector-java-5.1.45.jar,解压,取其中的mysql-connector-java-5.1.45-bin.jar

? (2)下载完后,在weka的安装目录下(我放在了D:\)D:\Weka-3-8新建lib文件夹,将mysql-connector-java-5.1.45bin.jar包复制到lib文件夹下。

? (3)在JDK的安装目录中C:\Program Files\Java\jdk1.8.0_152\jre\lib下也放mysql-connector-java-5.1.45-bin.jar(同时以防万一,我在C:\Program Files\Java\jre1.8.0_152\lib\ext也放置了同样的文件。虽然不知道自己这样做有什么意义。。)

3、设置环境变量

? 此处环境变量的配置和JDK一样,首先新建系统变量WEKA_HOME,其值为D:\Weka-3-8

??修改classpath,在其中加上%WEKA_HOME%\lib\mysql-connector-java-5.1.45-bin.jar;%JAVA_HOME%\jre\lib\mysql-connector-java-5.1.45-bin.jar

4、修改weka.jar包

这里只是稍微修改配置文件,所以只要使用解压工具打开在\Weka-3-8\weka.jar\experiment里找到DatabaseUtils.props将其备份为其他名字然后将DatabaseUtils.props.mysql重命名为DatabaseUtils.props,并修改其内容:

# JDBC driver (comma-separated list)
jdbcDriver=jdbcDriver=com.mysql.jdbc.Driver

# database URL

jdbcURL=jdbc:mysql://localhost:3306/weka?(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

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

?

其他的暂时无需修改,保存。

5、打开runWeka.ini文件,到文件尾部

在文件尾部添加驱动器的引用(之前下载的驱动文件位置)

cp=%CLASSPATH%;D:/Weka-3-8/lib/mysql-connector-java-5.1.45-bin.jar

?

三、相关问题及解决

保存后运行weka,点击Open DB ......(输入用户名、密码再点击连接,相关操作见开头链接博主的详细描述。)

然而,我全部做完之后,发现提示:

exception: java.sql.SQLException: Unable to find a suitable driver for jdbc:mysql://localhost:3306/weka

即找不到合适的驱动器。

在保证前面我的系统变量等各种地址都填写无误的情况下,我推测可能的原因有两个:

1、mysql-connector-java的版本无法驱动MYSQL的版本。(我一开始用的非常老旧的版本,后来下载的较新版本的。)

这种情况需要下载一个符合要求求,能带得动现有MYSQL版本的驱动即可。

2、在上面这种情况解决之后依然无法连接时,虽然不知道原因,但是我尝试把我一开始下载的mysql-connector-java-5.1.45.jar(注意不是mysql-connector-java-5.1.45-bin.jar)放入C:\Program Files\Java\jre1.8.0_152\lib\ext即可解决。