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

Sha*_*rad 8 mysql installation r rmysql

我是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.libmysql/libmysql/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*
    
    Run Code Online (Sandbox Code Playgroud)

请建议我如何解决这个问题?

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

我在使用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*
    
    Run Code Online (Sandbox Code Playgroud)
  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. *
    
    Run Code Online (Sandbox Code Playgroud)

    确保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*
    
    Run Code Online (Sandbox Code Playgroud)
    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")专辑*

had*_*ley 11

您现在可以跳过所有复杂的步骤而只是这样做 install.packages("RMySQL")


小智 0

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

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

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

请注意,我并不是说您正在尝试做的事情没有成功的案例,但恕我直言,您会更快地完成上述操作。