經常在網上看到,很多人問如何在r中如何連線資料庫,尤其是如何使用rmysql包的問題。這些問題主要分為兩部分:一是 安裝不上; 二是安裝上了 結果顯示是中文亂碼或者是問號。我當初也被這種問題困擾過一段時間,所以現在簡單總結一下:希望能夠幫助部分人解決問題。
首先如何載入rmysql包:細分幾個步驟:
1,安裝r(哈,當然這一步很多人可以跳過了)
2,安裝r tools,最好要和r是乙個版本 比如最新的r是2.15.0 r tools是rtools215
3,安裝mysql(5.5)
4,在資料夾 c:\program files\r\r-2.15.0\etc中建立 名為 renviron.site的檔案,並用記事本開啟新增 mysql_home=c:/program files/mysql/mysql server 5.5語句。
5,複製libmysql.lib and libmysql.dll(這兩個檔案在c:\program files\mysql\mysql server 5.5\lib )到資料夾c:\program files\mysql\mysql server 5.5\lib\opt(沒有該資料夾需要自己建立)
6,複製libmysql.dll(c:\program files\mysql\mysql server 5.5\lib)到資料夾c:\program files\r\r-2.14.0\bin\i386中
7,開啟r,開始安裝rmysql,install.packages(『rmysql』, type = 『source』);
8,library(rmysql),這個過程之前還需要載入dbi包。
下面回答第二個問題
r中能否正確顯示mysql的中文字元記錄,而不是亂碼或者問號,和mysql的配置有關。
有關mysql配置的資料很多,我只簡單介紹,如何設定。
正確安裝完mysql之後,輸入命令列:
show variables like 『character_set_%』;
顯示你的mysql的字符集環境
如果發現有字符集latin1則修改為gbk或者utf8
比如character_set_database 的字符集合為latin1
則可以通過 set character_set_database=」gbk」;可以修改字符集。
我的簡單方式 是不管三七二十一,把所有的都修改為gbk。
這樣設定完,我們就可以在r中呼叫運算元據庫中的資料了。
假如安裝mysql時,設定user 為 root 密碼 是六個1,並且已經在mysql中建立了乙個名為test的資料庫,裡面有乙個表hi,裡面有三個欄位是 name,age,***
則在r中查詢按照年齡降序排列的**如下:
library(rmysql)
con=dbconnect(mysql(),user="root",password="111111",dbname="test")
table.names=dblisttables(con)
fields.names=dblistfields(con,"hi")
dbsendquery(con,'set names gbk') # 注意該行**是告訴通過什麼字符集來獲取資料庫字段,gbk或者utf8與你當初設定保持一致。
res=dbsendquery(con,"select * from hi order by age")
dat=fetch(res)
datdbsendquery(con,"insert into hi values('阿明',28,'男')")
res=dbsendquery(con,"select * from hi order by age")
dat=fetch(res)
datdbdisconnect(con)
R語言之RMysql 包安裝
注意安裝時候選用的mysql 版本,我選用了32位,若是選用64位,則後面r得切換到64位上安裝rmysql,這個花了我三四個小時才弄明白,本來想32 或者64位的r都能用rmysql,最後發現你的買sql裝的時候已經固定了多少位了,唉,寫在這裡,提醒各位少走彎路。我的mysql 路徑為c prog...
R語言使用RMySQL連線及讀寫Mysql資料庫
簡單說下安裝過程,一般不會有問題,重點是rmysql的使用方式。系統環境說明 redhat系統 linux 460 42.6.32 431.29.2.el6.x86 64 系統編碼 lang zh cn.utf 8 中文utf 8格式 mysql版本 mysql ver 14.14 distrib ...
總結RMySql進行R對mysql資料庫操作
總結 rmysql進行r 對mysql 資料庫操作 1 rmysql 2 連線資料庫 conn dbconnect mysql dbname mydatabase username root password 1234 host localhost port 3306 dbwritetable co...