關於weka連接mysql的一些問題

如何在weka中連接數據庫

相關準備:

Windows 7
jdk7
weka-3.6.12.exe
mysql-5.0
MySQL Driver for JDBC--->mysql-connector-java-5.1.22-bin.jar

 

1、進入weka的安裝目錄

1)新建文件夾lib和文件夾weka,然後將mysql-connector-java-5.1.22-bin.jar複製到lib文件夾中

2)“我的電腦”屬性,設置環境變量

    新建變量WEKA_HOME D:\Weka-3-6

   在CLASSPATH變量中添加“;%WEKA_HOME%\lib\mysql-connector-java-5.1.22-bin.jar”

3)進到cmd界面,並進入D:\Weka-3-6,輸入命令jar xf weka.jar weka    。將weka.jar解壓到weka文件夾(新建)中,然後進入weka\experiment,找到DatabaseUtils.props(缺省使用)將其重新命名備份;假設我們要連接的mysql數據庫,則將DatabaseUtils.props.mysql重新命名爲DatabaseUtils.props,然後做如下修改:

# JDBC driver (comma-separated list)
#jdbcDriver=org.gjt.mm.mysql.Driver
修改爲:jdbcDriver=com.mysql.jdbc.Driver 
# database URL,保持不變
jdbcURL=jdbc:mysql://server_name:3306/database_name 

# 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  

#mysql-conversion  --類型轉換,做如下補充
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

  其他的暫時無需修改,保存

4)對weka重新打包,替換原來的weka.jar(最好改名備份),進入命令行

     cd weka安裝目錄\weka

     jar cvf weka.jar weka\*.*

這樣就完成weka.jar的重新生成,進入安裝目錄\weka,便可看到新生成的weka.jar,將其複製替換安裝目錄下原來的weka.jar

網上的很多文章到這一步就去運行weka,我也試了一下發現沒有辦法找到jdbc.driver,沒辦法連接上數據庫。結果我再查資料,再做如下的操作,就可以正常連接了。

5)將剛剛修改的DatabaseUtils.props文件,複製到weka的安裝目錄下

6)打開runWeka.ini文件,到文件尾部

# The classpath placeholder. Add any environment variables or jars to it that
# you need for your Weka environment.
# Example with an enviroment variable (e.g., THIRD_PARTY_LIBS):
#   cp=%CLASSPATH%;%THIRD_PARTY_LIBS%
# Example with an extra jar (located at D:\libraries\libsvm.jar):
#   cp=%CLASSPATH%;D:\\\\libraries\\\\libsvm.jar
# Or in order to avoid quadrupled backslashes, you can also use slashes "/":
#   cp=%CLASSPATH%;D:/libraries/libsvm.jar
修改爲(添加driver的文件路徑):cp=%CLASSPATH%;D:/Programs/Weka-3.6/lib/mysql-connector-java-5.1.6-bin.jar
#cp=%CLASSPATH%

保存

2、運行weka,進入explorer -->open DB

在URL框中輸入:jdbc:mysql://localhost:3306/mysql    (localhost是服務器名稱,最後的mysql是要訪問的數據庫名,自行修改,確保要訪問的數據庫存在)

點擊user: 輸入用戶名和密碼後,點擊connect,

如果在下面的info框中,顯示connecting to: jdbc:mysql://localhost:3306/mysql = true,則連接成功;否則失敗。

我這邊試了是成功的。

可以在query框中輸入sql語句,點擊excute執行。

其他的數據庫連接暫時還沒有嘗試,待續。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章