簡體   English   中英

如何連接R與MySQL或如何安裝RMySQL包?

[英]How to Connect R with MySQL or how to install RMySQL package?

我是R的新手,我正在嘗試將R連接到MySQL。 我已經為64位安裝了mysql-5.5.22-winx64R-2.12.0 我已經設置了MYSQL_HOME environment path(C:\\Program Files\\MySQL\\MySQL Server 5.5)並嘗試按照以下步驟操作:

  1. 從這里安裝最新的RTools
  2. 安裝MySQL或mysql的頭文件和庫文件
  3. 創建或編輯文件C:\\Program Files\\R\\R-2.12.1\\etc\\Renviron.site並添加如MYSQL_HOME=C:/mysql (mysql文件的路徑)
  4. libmysql.libmysql/lib復制到mysql/lib/opt以滿足依賴關系。
  5. libmysql.dll復制到C:\\Program Files\\R\\R-2.12.1\\binwindows/system32 directory
  6. 運行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包的步驟: -

  1. 從以下鏈接下載軟件:

      * 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* 
  2. 設置以下環境變量

      * 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

  3. 創建文件夾和復制文件

      * 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* 
    1. 運行命令

      一個。 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格式,因此不需要二進制安裝。

  1. 下載R並運行一些基本命令以確保它有效。

  2. 在R中,您需要安裝RODBC(如果您還沒有)。 在R控制台中鍵入此項。

install.packages("RODBC")

這會安裝RODBC,但自從OS Mavericks以來,某些文件不再包含在內,因此您會收到錯誤消息

找不到ODBC頭sql.h和sqlext.h

並且您需要在正確的位置獲取sql.h和sqlext.h文件。

要以最簡單的方式執行此操作,請確保已安裝自制軟件 (簡單說明)。 然后在終端中使用此代碼進行安裝。

完成后,再次進入R控制台

install.packages("RODBC")
  1. MySQL中搜索適當的ODBC安裝 我正在運行Mac OSX 10.6,所以我下載了dmg並安裝了它。 這照顧好自己。

  2. 現在是棘手的部分。 顯然,Mac OX在最近的操作系統發布后取出了ODBC管理器,因此您需要下載ODBC管理器( http://www.odbcmanager.net/ )。 它也是一個dmg文件,所以只需拖放到您的實用程序文件夾即可。

我在5.3.6 dmg安裝時遇到了困難(保持失敗),所以我安裝了5.2.7。

  1. 打開ODBC管理器。 您需要配置DSN,因此請單擊“系統DSN”選項卡,然后單擊“添加”。

  2. 你會看到一個彈出窗口,要求你選擇一個驅動程序。 我有基於MySQL ODBC安裝的“MySQL ODBC 5.2 Driver”。 單擊“確定”。 如果沒有看到驅動程序,則需要確認已安裝MySQL ODBC。

  3. 在下一個彈出窗口中,根據需要創建數據源名稱(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”)

  4. 在R中,執行下面 - 我相信每次啟動R並在進行MySQL查詢之前,都需要完成最后3個步驟。

    庫(RODBC)

  5. 確保您已從XAMPP控制面板打開MySQL和Apache。

  6. 然后執行

    odbcConnect(“test”) - 注意我在雙引號中使用DSN的方式。 必要時互換。

這應該讓你開始運行。 您可以閱讀有關在R中進行MySQL查詢的其他教程。

我從Stack Overflow(感謝所有人!),隨機的其他網站/電子郵件交換歷史以及Joseph Adler撰寫的“R In A Nutshell”一書中的很多帖子中共同攻擊了這一點,但如果我錯過了某些內容,請告訴我,或者是不清楚。

祝好運!

我還花了幾個小時試圖在Windows 10中完成這項工作,從而獲得錯誤。 我發現RMySQL的修復程序既凌亂又復雜,但RODBC更加輕松,優雅地導致了解決方案。 我有R,RStudio,MySQL服務器,MySQL Workbench,並且需要以下額外步驟才能使其工作:

  1. 在RStudio install.packages(RODBC)安裝軟件包
  2. 在此處下載並安裝MySQL ODBC連接器
  3. 配置MySQL ODBC連接器。 是一些說明。 只需在Windows 10的開始屏幕上搜索“ODBC”,它就會彈出該窗口。 獲取正確的連接參數並使用測試按鈕確保它正常工作。 它連接后會在下拉菜單中顯示您的數據庫列表。 在“數據源名稱”中給它一個名稱,它將進入R腳本,比如'mysql_odbc'

現在您可以連接,運行查詢並斷開連接:

library(RODBC)
cursor <- odbcConnect("mysql_odbc", uid="root", pwd="HaysPuffyWalton5")
out <- sqlQuery(cursor, "SELECT * FROM emp WHERE deptno = 10");
close(cursor);

這不是一個直接的答案,但你仍然可以發現它有用:

  1. 使用更新的R版本(目前為2.15)

  2. 在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

按照這里的指南:

http://www.ahschulz.de/2013/07/23/installing-rmysql-under-windows/

我跟着它,它就像一個魅力。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM