[英]How to Connect R with MySQL or how to install RMySQL package?
我是R的新手,我正在嘗試將R連接到MySQL。 我已經為64位安裝了mysql-5.5.22-winx64
和R-2.12.0
。 我已經設置了MYSQL_HOME environment path(C:\\Program Files\\MySQL\\MySQL Server 5.5)
並嘗試按照以下步驟操作:
C:\\Program Files\\R\\R-2.12.1\\etc\\Renviron.site
並添加如MYSQL_HOME=C:/mysql
(mysql文件的路徑) libmysql.lib
從mysql/lib
復制到mysql/lib/opt
以滿足依賴關系。 libmysql.dll
復制到C:\\Program Files\\R\\R-2.12.1\\bin
或windows/system32 directory
。 運行install.packages('RMySQL',type='source')
並等待編譯結束。 但我仍然得到這個錯誤: -
*> install.packages('RMySQL',type='source') --- Please select a CRAN mirror for use in this session --- trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/RMySQL_0.9-3.tar.gz' Content type 'application/x-gzip' length 165363 bytes (161 Kb) opened URL downloaded 161 Kb * installing *source* package 'RMySQL' ... ERROR: configuration failed for package 'RMySQL' * removing 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL' * restoring previous 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL' The downloaded packages are in 'C:\\Users\\sharad\\AppData\\Local\\Temp\\RtmpdQHwCb\\downloaded_packages' Warning message: In install.packages("RMySQL", type = "source") : installation of package 'RMySQL' had non-zero exit status*
請建議我如何解決這個問題?
最后我得到了解決方案: - 您可以在我的博客上詳細查看解決方案。
我在使用RMySQL包安裝R的最后2天工作,最后得到了解決方案,這里是安裝RMySQL包的步驟: -
從以下鏈接下載軟件:
* a. R2.13.2: Download R from http://cran.stat.sfu.ca/index.html b. RTools 214: Download RTools from http://cran.cict.fr c. RMySQL 0.8-0.tar.gz: Download RMySQL from http://biostat.mc.vanderbilt.edu/wiki/main/RMySQL/RMySQL_0.8-0.tar.gz d. MySQL Server 5.0: download it from http://dev.mysql.com e. RSTUDIO (optional): download it from http://rstudio.org*
設置以下環境變量
* a. MYSQL_HOME : <drive>/path to MySQL installation folder eg MYSQL_HOME= C:\\Program Files\\MySQL\\MySQL Server 5.5\\ b. R_HOME: <drive>/path to R installation eg R_HOME=C:\\Program Files\\R\\R-2.13.2\\ c. PATH: Modify path to accommodate the above variables. *
確保Windows PATH變量包含以下路徑: \\ Rtools \\ 2.14 \\ bin \\ Rtools \\ 2.14 \\ MinGW \\ bin \\ Rtools \\ 2.14 \\ MinGW64 \\ bin
創建文件夾和復制文件
* a. OPT: Create a folder OPT under C:\\Program Files\\MySQL\\MySQL Server 5.5\\lib and copy MYSQLLIB.LIB the above path. Also copy libmysql.dll to <drive>\\<path>\\R\\R-2.14.0\\bin\\(64 bit) Or <Drive>\\<path>\\R\\R-2.14.0\\bin\\i386\\ (32 bit) and to C:\\Windows\\System32. b. Renviron.site: create or edit a file <DRIVE>\\<path>\\R\\R-2.14.0\\etc\\Renviron.site and add a line: MYSQL_HOME =”C:/Program Files/MySQL/MySQL Server 5.5/” NB: USE FORWARD SLASH AND DOUBLE QUOTES HERE c. libMySQL.dll: Copy this file to C:\\Program Files\\R\\R-2.13.2\\bin\\i386 as well as C:\\Program Files\\R\\R-2.13.2\\bin*
運行命令
一個。 Install.Packages:通過單擊桌面上的R圖標或從“開始”菜單運行R GUI。 輸入INSTALL.PACKAGES(“RMySQL”,type =“Sources”)。 這將從存儲庫下載所需的軟件。
灣 命令提示符:復制下載的zip文件(在步驟4.a.中)並將其粘貼到R安裝文件夾下。 轉到“開始”菜單並打開“命令提示符”。 轉到R安裝文件夾,然后鍵入R CMD INSTALL RMySQL_0.8-0.tar.gz
*命令:
library(RMySQL)drv = dbDriver(“MySQL”)con = dbConnect(drv,host =“localhost”,dbname =“test”,user =“root”,pass =“root”)album = dbGetQuery(con,statement = “select * from t_master”)專輯*
您現在可以跳過所有復雜的步驟,只需執行install.packages("RMySQL")
我周末在Mac OSX上遇到了一個黑客馬拉松 - 盡管有一些參考資料(最后提到),我花了4個小時將所有東西拼湊在一起。 我沒有找到一個簡單的步行,所以我決定發布一個,雖然它在我心中是新鮮的。
我不確定與Windows的兼容性,但希望這些說明也會使您更容易。
我試圖讓R和MySQL在本地環境中進行通信(可能需要對服務器環境進行更改)。 我使用XAMPP(雖然我沒有使用RMySQL進行連接),但最后我能夠使用PHP頁面編寫R文件,執行該文件,並將R寫入MySQL表。 據我所知,這僅適用於MacOSX ...
使用的所有軟件都是dmg格式,因此不需要二進制安裝。
下載R並運行一些基本命令以確保它有效。
在R中,您需要安裝RODBC(如果您還沒有)。 在R控制台中鍵入此項。
install.packages("RODBC")
這會安裝RODBC,但自從OS Mavericks以來,某些文件不再包含在內,因此您會收到錯誤消息
找不到ODBC頭sql.h和sqlext.h
並且您需要在正確的位置獲取sql.h和sqlext.h文件。
要以最簡單的方式執行此操作,請確保已安裝自制軟件 (簡單說明)。 然后在終端中使用此代碼進行安裝。
完成后,再次進入R控制台
install.packages("RODBC")
在MySQL中搜索適當的ODBC安裝 。 我正在運行Mac OSX 10.6,所以我下載了dmg並安裝了它。 這照顧好自己。
現在是棘手的部分。 顯然,Mac OX在最近的操作系統發布后取出了ODBC管理器,因此您需要下載ODBC管理器( http://www.odbcmanager.net/ )。 它也是一個dmg文件,所以只需拖放到您的實用程序文件夾即可。
我在5.3.6 dmg安裝時遇到了困難(保持失敗),所以我安裝了5.2.7。
打開ODBC管理器。 您需要配置DSN,因此請單擊“系統DSN”選項卡,然后單擊“添加”。
你會看到一個彈出窗口,要求你選擇一個驅動程序。 我有基於MySQL ODBC安裝的“MySQL ODBC 5.2 Driver”。 單擊“確定”。 如果沒有看到驅動程序,則需要確認已安裝MySQL ODBC。
在下一個彈出窗口中,根據需要創建數據源名稱(DSN) - 但請記住,這是您從R調用時需要使用的名稱。在下面的關鍵字區域中(關鍵字將在引號中,值將為在括號中),ADD
“database”(包含數據庫名稱的值)
“server”(對於本地環境不使用localhost - 而是使用本地IP地址127.0.0.1。***這是我的關鍵部分)
“uid”(數據庫用戶ID)
“pwd”(數據庫密碼)
“socket”(不確定這是否是必需的,但經過多次教程之后,它留在我的配置中並且工作正常,所以也許你需要它。你可以在my.cnf找到你的套接字位置 - 做一個聚光燈搜索。套接字文件位置在CLIENT下)
這是我的配置:
DSN(“測試” - 這是在頂部)
數據庫(“電視”)
socket(“/Applications/XAMPP/xamppfiles/var/mysql.sock”)
uid(“root”)
pwd(“”)
服務器(“127.0.0.1”)
在R中,執行下面 - 我相信每次啟動R並在進行MySQL查詢之前,都需要完成最后3個步驟。
庫(RODBC)
確保您已從XAMPP控制面板打開MySQL和Apache。
然后執行
odbcConnect(“test”) - 注意我在雙引號中使用DSN的方式。 必要時互換。
這應該讓你開始運行。 您可以閱讀有關在R中進行MySQL查詢的其他教程。
我從Stack Overflow(感謝所有人!),隨機的其他網站/電子郵件交換歷史以及Joseph Adler撰寫的“R In A Nutshell”一書中的很多帖子中共同攻擊了這一點,但如果我錯過了某些內容,請告訴我,或者是不清楚。
祝好運!
我還花了幾個小時試圖在Windows 10中完成這項工作,從而獲得錯誤。 我發現RMySQL的修復程序既凌亂又復雜,但RODBC更加輕松,優雅地導致了解決方案。 我有R,RStudio,MySQL服務器,MySQL Workbench,並且需要以下額外步驟才能使其工作:
install.packages(RODBC)
安裝軟件包 現在您可以連接,運行查詢並斷開連接:
library(RODBC)
cursor <- odbcConnect("mysql_odbc", uid="root", pwd="HaysPuffyWalton5")
out <- sqlQuery(cursor, "SELECT * FROM emp WHERE deptno = 10");
close(cursor);
這不是一個直接的答案,但你仍然可以發現它有用:
使用更新的R版本(目前為2.15)
在Windows平台上,我寧願使用RODBC + Windows MySQL驅動程序,除非您處於具有異構平台(即Linux和Windows)的環境中,其中代碼在團隊成員之間大量共享。 甚至然后在相同的腳本中選擇使用RMySQL和RODBC,具體取決於它運行的平台是一個簡單的if() {...} else {...}
請注意,我並不是說沒有成功案例與你想要做的事情有關,但恕我直言,你將會更快地完成上述工作。
這對我有用:使用Windows XP SP3 32位操作系統,R Studio,Rv2.15.3
按照以下說明操作: http : //biostat.mc.vanderbilt.edu/wiki/Main/RMySQL
但是,如果您已下載MySQL版本5.6,則必須復制libmysql.lib
,例如在此路徑中: D:\\Program Files\\MySQL\\MySQL Server 5.6\\lib
並創建一個新文件夾,如: D:\\Program Files\\MySQL\\MySQL Server 5.6\\lib\\opt
並將上面的libmysql.lib
粘貼到opt
文件夾中。 然后Renviron.site
文件將具有: MYSQL_HOME=D:/Program Files/MySQL/MySQL Server 5.6
。 請注意正斜杠。
最后按照上面鏈接中提供的install.packages行的說明進行操作。 我不得不做一些試驗才能最終得到它。
如果這個錯誤在R
library(RMySQL)
#-----------
Loading required package: DBI
Error : .onLoad failed in loadNamespace() for 'RMySQL', details
call: i$Location
error: $ operator is invalid for atomic vectors
Error: package or namespace load failed for 'RMySQL'
然后從外面R
set MYSQL_HOME=F:/Program Files/MySQL/MySQL Server 5.6
並返回內部:
library(RMySQL)
#Loading required package: DBI
#MYSQL_HOME defined as F:/Program Files/MySQL/MySQL Server 5.6
或者只是來自內部R.
Sys.setenv(MYSQL_HOME = "F:/Program Files/MySQL/MySQL Server 5.6")
library(RMySQL)
#Loading required package: DBI
#MYSQL_HOME defined as F:/Program Files/MySQL/MySQL Server 5.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.