1. 程式人生 > >Weka連線MySQL資料庫詳解

Weka連線MySQL資料庫詳解

Weka連線MySQL資料庫詳解

一、軟體環境

(1)Weka3.8.1(目前官網提供的較穩定版本)

(2)MySQL5.5.39(實測比較穩定)

(3)mysql-connector-java-5.1.41

說明:其他版本組合可能也可以,本文只負責以上版本的組合並實測成功


二、問題描述(瞎扯內容,建議跳過)

使用Weka做線上資料分析和挖掘不免會用到與MySQL的連線,但是很多人安裝了Weka和MySQL後,連接出現一些問題,正如本人之前遇到很多問題也沒有成功,經過一番折騰和Weka高手的指導也沒有成功,最後不得不重灌系統,重新安裝軟體,還是遇到了【exception: java.sql.SQLException: Unable to find a suitable driver for jdbc......】的問題,網上查了好多資料,解決還是沒有很好解決Weka和MySQL的間接且使用的方法或者教程,所以這裡寫一下自己的方法,希望對少數使用Weka連線MySQL的同志有所幫助和提示;


三、Weka連線MySQL詳解(簡潔可行的方法)

(個人感覺《資料探勘與機器學習WEKA應用技術與實踐》1.4節的講解有點麻煩且容易出錯,所以根據我自己的方法寫一下整個過程)


(1)安裝Weka

a. 在Weka的安裝目錄下(本人的是C:\Program Files\Weka-3-8)新建lib資料夾

b. 將mysql-connector-java-5.1.41-bin.jar拷貝到新建的lib資料夾中


(2)安裝MySQL

a. 注意安裝MySQL時要記住使用者名稱和密碼(後面Weka連線時需要使用)

b. 在MySQL新建weka資料庫(MySQL資料庫建立這裡就不詳細展開了,不熟悉的讀者可以使用Navicat視覺化建立)

b. 將iris.csv資料匯入到剛才建立的weka資料庫(這操作不進行也可以,只是為了後面連線成功後測試sql語句的)


(3)修改DatabaseUtils.props中的jdbcDriver和jdbcURL項

a. 用WinRAR開啟Weka安裝目錄下的weka.jar

b. 定位到DatabaseUtils.props(目錄:weka.jar -- weka -- experiment)

c. 將DatabaseUtils.props拖拽到桌面上,用任意的文字編輯器(本人喜歡用UltraEdit)開啟

修改如下內容:

(I) 在#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mckoi.JDBCDriver,org.hsqldb.jdbcDriver下新增

jdbcDriver=com.mysql.jdbc.Driver

(II)  在#jdbcURL=jdbc:idb=experiments.prp下面新增:jdbcURL=jdbc:mysql://localhost:3306/weka 

d. 儲存DatabaseUtils.props,將其拷貝到Weka的安裝目錄下(本人的安裝目錄是:C:\Program Files\Weka-3-8)


(4)修改RunWeka.ini檔案

a. 在Weka安裝目錄下找到RunWeka.ini檔案,拷貝到桌面後修改(本人遇到的情況:直接在Weka的目錄中修改無法儲存)

b. 修改內容:在cp = %CLASSPATH%的一行後面新增:;C:/Program Files/Weka-3-8/lib/mysql-connector-java-5.1.41-bin.jar(注意別落下分號";")

(PS:按照這種方法,就不用像某些教程那樣還要配置環境變量了,而且只配置環境變數也有可能還是不識別mysql-connector-java)

c. 儲存RunWeka.ini檔案,並將其拷貝回Weka安裝目錄(本人是:C:/Program Files/Weka-3-8)

四、執行Weka

(1)開啟Explorer
(2)選擇【OpenDB...】 (3)設定使用者名稱和密碼(小人頭像)【Set user and password】
(4)填寫MySQL的使用者名稱和密碼,點選【OK】
(5)點選連線(插頭的圖示)


(6)檢視是否連線成功資訊

在Info標籤下,如果連線成功則提示:connecting to: jdbc:mysql://localhost:3306/weka = true;

如果連線不成功,則會提示各種錯誤,如前面所提到的【exception: java.sql.SQLException: Unable to find a suitable driver for jdbc......】錯誤


五、執行Query查詢

提示:如果在上一步中的連線提示Info中出現了connecting to: jdbc:mysql://localhost:3306/weka = true的提示資訊,這說明你的Weka已經能與MySQL成功連線了!恭喜!
但是為了保險起見,我們在測試一下SQL查詢
在連線介面中的Query標籤下輸入:select * from iris(可以任意嘗試SQL語句,前提是你進行了本教程前面安裝MySQL時匯入weka資料庫中的iris表的操作,當然你也可以使用 其他測試資料)
如果正常執行了Query,則在Result標籤和Info標籤會分別顯示相關資訊,如下如: 如果以上資訊都能正常的現實,那麼恭喜你,下面可以進行你自己的資料探勘和機器學習入門研究了!

六、總結

(1)本人在經歷了幾次失敗後,折騰了很多種方法,查了好多資料,沒有一個比較完整系統的方法介紹Weka連線MySQL的教程,很多入門資料探勘與機器學習的新手可能都會遇到像我一樣的問題,所以就把自己的失敗的經理和成功配置的經驗寫一下和大家分享,如果使用Weka連線其他資料庫也可以參照本教程修改相關配置即可! (2)由於CSND的部落格有上傳圖片的大小限制,所以本教程中的照片都未正常顯示,為了方便讀者,打包了本教程的word帶圖版以及所對應版本的Weka、MySQL、mysql-connector-java、相關配置修改檔案以及iris資料集,請到如下網址下載:   a. Weka3.8.1+Weka配置檔案+iris資料集(forWeka連線MySQL資料庫詳解):http://download.csdn.net/detail/sdnuwjw/9790846
  b. Weka連線MySQL資料庫詳解(MySQL及mysql-connector-java軟體包):http://download.csdn.net/detail/sdnuwjw/9790837
希望能方便喜歡的讀者使用! (3)都是比較基礎的一些使用,對於某些Weka或者MySQL高手來說都是小菜一碟,不值一提的東西,本人也是剛入門線上資料探勘和機器學習的新手,而且也是第一次在CSDN上寫點東西,不免有很多的疏漏和不足之處,所以希望高手們如果覺得文章很low不要噴我,我的小心臟承受不住;如果對您有用的話或者您轉載的話,請註明轉載資訊,謝謝!