Warning messages:
1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序
當R語言從數據庫取出數據時,出現以上錯誤,這是由於未配置ODBC數據源引起的錯誤,以下將介紹該問題的解決方案,同時介紹R連接mysql數據庫的方法
一、配置ODBC數據源
1.下載mysql ODBC【http://dev.mysql.com/downloads/connector/odbc/】,如果覺得注冊麻煩可點擊我的網盤鏈接【鏈接:http://pan.baidu.com/s/1c0PWyHE 密碼:g8ha 注意:該軟件包適用於Windows 64位】
2.安裝好了mysql ODBC之后添加,首先打開控制面板-管理工具-ODBC 數據源(對應自己系統打開相應數據源)

3.ODBC 數據源添加


4.設置ODBC數據源參數

以上完成了數據源的配置,接下來打開R軟件利用RODBC包連接mysql數據庫
二、下載並加載RODBC包
> install.packages( "RODBC" );#下載RODBC包
> library( "RODBC");#加載RODBC包
三、使用
1.建立並打開鏈接【odbcConnect( "數據源名稱",uid="用戶名",pwd="密碼" )】,返回mysql連接標識,數據源名稱為上面自己設置的
> con = odbcConnect( "Rdata",uid="root",pwd="" );#數據源:Rdata(設置時的名稱),用戶名:root,密碼為空
2.從數據庫讀取數據表,返回一個數據框【 sqlFetch( mysql連接標識,'表名' ) 】 > result1 = sqlFetch( conn,'test' );
> result1 #顯示結果
name score
1 zhangsan 90
2 wangwu 98
3.向數據庫提交查詢【 sqlQuery( mysql連接標識,"sql命令" ) 】 > result2 = sqlQuery( conn,'select * from test where score>90' );
> result2
name score
1 wangwu 98
4.關閉連接【 close( mysql連接標識 ) 】 > close( conn );
常見錯誤:
> conn = odbcConnect( "Rdata",uid="root",pwd="" )
Warning messages:
1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state HY000, code 2003, message [MySQL][ODBC 5.3(a) Driver]Can't connect to MySQL server on '127.0.0.1' (10061)
2: In odbcDriverConnect("DSN=Rdata;UID=root") : ODBC connection failed
這可能是由於沒有打開mysql,只有打開后才能連接
補充:mysql ODBC ANSI driver 和Unicode drive區別:Unicode driver版本提供了更多字符集的支持,也就是提供了多語言的支持;而ANSI driver版本是只針對有限的字符集的范圍。