如何连接R与MySQL或如何安装RMySQL包?

时间:2012-04-24 05:42:59

标签: mysql r installation rmysql

我是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. 从此处安装最新的RTool
  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*
    
  7. 请建议我如何解决这个问题?

    最后我得到了解决方案: - 您可以在我的blog上详细查看解决方案。

    我在使用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
               e.g. MYSQL_HOME= C:\Program Files\MySQL\MySQL Server 5.5\  
      
            b. R_HOME: <drive>/path to R installation
               e.g. R_HOME=C:\Program Files\R\R-2.13.2\
      
             c. PATH: Modify path to accommodate the above variables. *
      

      确保Windows PATH变量中包含以下路径:           \ Rtools \ 2.14 \仓           \ 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. RUN COMMANDS

        一个。 Install.Packages:通过单击桌面上的R图标或从“开始”菜单运行R GUI。类型           INSTALL.PACKAGES(“RMySQL”,类型=”源”)。      这将从存储库下载所需的软件。

        湾命令提示符:复制下载的zip文件(在步骤4.a.中)并将其粘贴到R安装文件夹下。       转到“开始”菜单并打开“命令提示符”。转到R安装文件夹,然后键入R CMD INSTALL RMySQL_0.8-0.tar.gz

        *命令:

          

        库(RMySQL)   drv = dbDriver(&#34; MySQL&#34;)   con = dbConnect(drv,host =&#34; localhost&#34;,dbname =&#34; test&#34;,user =&#34; root&#34;,pass =&#34; root&#34;)   album = dbGetQuery(con,statement =&#34; select * from t_master&#34;)   专辑*

7 个答案:

答案 0 :(得分:11)

您现在可以跳过所有复杂的步骤,只需执行install.packages("RMySQL")

答案 1 :(得分:4)

周末我在Mac OSX上遇到黑客马拉松时遇到了这个问题 - 尽管有一些参考资料(最后提到),但我花了4个小时将所有东西拼凑在一起。我没有找到一个简单的演练,所以我决定发布一个,但它在我心中是新的。

我不确定与Windows的兼容性,但希望这些说明也会让您更轻松。

我试图让R和MySQL在本地环境中进行通信(可能需要对服务器环境进行更改)。我使用XAMPP(虽然我没有使用RMySQL进行连接),但最后我能够使用PHP页面编写R文件,执行该文件,并将R写入MySQL表。据我所知,这仅适用于MacOSX ...

所有使用的软件均采用dmg格式,因此无需二进制安装。

  1. Download R并运行一些基本命令以确保您有效。

  2. 在R中,您需要安装RODBC(如果您还没有)。在R控制台中输入此内容。

  3. install.packages("RODBC")
    

    这会安装RODBC,但自从OS Mavericks以来,某些文件不再包含在内,因此您收到错误消息

      

    未找到ODBC标头sql.h和sqlext.h

    你需要在正确的位置获取sql.h和sqlext.h文件。

    要以最简单的方式执行此操作,请确保已安装homebrew(简单说明)。然后在终端中使用此code进行安装。

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

    install.packages("RODBC")
    
    1. 搜索MySQL for the appropriate ODBC installation。我正在运行Mac OSX 10.6,所以我下载了dmg并安装了它。这样可以解决问题。

    2. 现在是棘手的部分。显然,Mac OX在最近的操作系统发布后取出了ODBC管理器,因此您需要下载ODBC管理器(http://www.odbcmanager.net/)。它也是一个dmg文件,所以只需拖放到您的实用程序文件夹即可。

    3. 我在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的方式。必要时互换。

      7. 这应该让你开始运行。您可以阅读有关在R中进行MySQL查询的其他教程。

        我从Stack Overflow上的很多精彩帖子(感谢所有人!),随机的其他网站/电子邮件交换历史以及Joseph Adler的“R In A Nutshell”一书中共同攻击了这一点,但如果我错过了,请告诉我某事或不清楚。

        祝你好运!

答案 2 :(得分:1)

我还花了几个小时试图在Windows 10中完成这项工作,从而出现错误。我发现RMySQL的修复程序既凌乱又复杂,但RODBC更加轻松,优雅地导致了解决方案。我有R,RStudio,MySQL服务器,MySQL Workbench,并且需要以下额外步骤才能使其工作:

  1. 在RStudio install.packages(RODBC)
  2. 中安装软件包
  3. 下载并安装MySQL ODBC连接器here
  4. 配置MySQL ODBC连接器。 Here是一些说明。只需在Windows 10的开始屏幕上搜索“ODBC”,它就会弹出该窗口。获取正确的连接参数并使用测试按钮确保它正常工作。它连接后会在下拉菜单中显示您的数据库列表。在“数据源名称”中给它一个名称,它将进入R脚本,比如'mysql_odbc'
  5. 现在您可以连接,运行查询并断开连接:

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

答案 3 :(得分:0)

这不是一个直接的答案,但你仍然觉得它很有帮助:

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

  2. 在Windows平台上,我宁愿使用RODBC + Windows MySQL驱动程序,除非您处于具有异构平台(即Linux和Windows)的环境中,其中代码在团队成员之间共享。甚至然后在相同的脚本中选择使用RMySQL和RODBC,具体取决于它运行的平台是一个简单的if() {...} else {...}

  3. 请注意,我并不是说没有成功案例可以解决您的问题,但恕我直言,您将会更快地启动并运行上述内容。

答案 4 :(得分:0)

这对我有用:使用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行的说明进行操作。我不得不做一些试验才能最终得到它。

答案 5 :(得分:0)

如果这是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

AND BACK INSIDE:

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

答案 6 :(得分:0)

按照指南:

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

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