8

我是 R 的新手,我正在尝试将 R 与 MySQL 连接起来。我已经安装mysql-5.5.22-winx64R-2.12.064 位。我已经设置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.libfrom mysql/libtomysql/lib/opt以满足依赖关系。
  5. 复制libmysql.dllC:\Program Files\R\R-2.12.1\bin或 到windows/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,终于找到了解决方案,这里是安装 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\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") 专辑 = dbGetQuery(con,statement= “从 t_master 中选择 *”)专辑*

4

7 回答 7

11

您现在可以跳过所有复杂的步骤,然后做install.packages("RMySQL")

于 2015-03-12T11:12:07.390 回答
4

周末我在 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 驱动程序”。单击“确定”。如果您没有看到驱动程序,那么您需要确认 MySQL ODBC 已安装。

  3. 在下一个弹出窗口中,将数据源名称 (DSN) 设为您想要的任何名称 - 但请记住,这是您从 R 调用时需要使用的名称。在下面的关键字区域中(关键字将用引号括起来,值将是括号内),添加

    “数据库”(带有您的数据库名称的值)

    “服务器”(对于本地环境,不要使用 localhost - 而是使用本地 IP 地址 127.0.0.1。***这对我来说是关键部分)

    “uid”(数据库用户 ID)

    “pwd”(数据库密码)

    “socket”(不确定这是否是必需的,但是经过多个教程后,它留在了我的配置中并且一切正常,所以也许你需要它。你可以在 my.cnf 中找到你的套接字位置 - 做一个聚光灯搜索。套接字文件位置在 CLIENT 下)

    这是我的配置:

    DSN(“测试” - 这是顶部)

    数据库(“电视”)

    套接字(“/Applications/XAMPP/xamppfiles/var/mysql.sock”)

    uid(“根”)

    密码 ("")

    服务器(“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”一书中一起破解了这个,但如果我错过了什么或者它是什么,请告诉我不清楚。

祝你好运!

于 2013-04-29T06:06:30.273 回答
1

我还花了几个小时试图在 Windows 10 中完成这项工作,但遇到了错误。我为 RMySQL 找到的修复程序混乱而复杂,但 RODBC 更轻松、更优雅地找到了解决方案。我有 R、RStudio、MySQL Server、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);
于 2016-09-01T10:05:18.137 回答
0

这不是一个直接的答案,但您仍然可能会发现它很有帮助:

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

  2. 在 Windows 平台上,我宁愿使用 RODBC + Windows MySQL 驱动程序,除非您处于具有异构平台(即 Linux 和 Windows)的环境中,其中代码在团队成员之间大量共享。即使这样,根据运行的平台在同一脚本中选择使用 RMySQL 和 RODBC 也很简单if() {...} else {...}

请注意,我并不是说您正在尝试做的事情没有成功的故事,但恕我直言,您将通过上述方式更快地启动并运行。

于 2012-04-25T05:21:41.707 回答
0

这对我有用:使用 Windows XP SP3 32 位操作系统、R Studio、Rv2.15.3

按照以下说明操作:http: //biostat.mc.vanderbilt.edu/wiki/Main/RMySQL

但是,如果您已经下载了 MySQL 5.6 版,您将不得不libmysql.lib在此路径中复制 present 例如:D:\Program Files\MySQL\MySQL Server 5.6\lib并创建一个新文件夹,如下所示:D:\Program Files\MySQL\MySQL Server 5.6\lib\opt并将上述内容粘贴到libmysql.libopt文件夹​​中。然后Renviron.site文件将具有以下内容:MYSQL_HOME=D:/Program Files/MySQL/MySQL Server 5.6. 请注意正斜杠。

最后按照上面链接中提供的 install.packages 行的说明进行操作。我不得不做一些试验才能最终把它弄好。

于 2013-07-19T05:36:08.657 回答
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

回到里面:

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
于 2013-11-25T01:15:27.793 回答
0

请按照此处的指南进行操作:

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

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

于 2014-02-08T10:36:45.550 回答