9

我不知道为什么我的 RMySQL 包无法安装 - 这就是我得到的:

> install.packages('RMySQL',type='source')
trying URL 'http://cran.mirrors.hoobly.com/src/contrib/RMySQL_0.7-5.tar.gz'
Content type 'application/x-gzip' length 160769 bytes (157 Kb)
opened URL
downloaded 157 Kb

* installing *source* package 'RMySQL' ...
ERROR: configuration failed for package 'RMySQL'
* removing 'C:/PROGRA~1/R/R-212~1.0/library/RMySQL'

The downloaded packages are in '(foo)'

Warning message:
In install.packages("RMySQL", type = "source") : installation of package 'RMySQL' had    non-zero exit status

我不认为 MySQL 安装有问题,因为正确的值似乎在注册表中:

> Sys.getenv('MYSQL_HOME')
                 MYSQL_HOME "C:/PROGRA~1/MySQL/MYSQLS~1.1/" 
> readRegistry("SOFTWARE\\MySQL AB", hive="HLM", maxdepth=2)
$`MySQL Server 5.1`
$`MySQL Server 5.1`$DataLocation
[1] "C:\\Documents and Settings\\All Users\\Application Data\\MySQL\\MySQL Server 5.1\\"

$`MySQL Server 5.1`$FoundExistingDataDir 
[1] "0"

$`MySQL Server 5.1`$Location 
[1] "C:\\Program Files\\MySQL\\MySQL Server 5.1\\"

$`MySQL Server 5.1`$Version
[1] "5.1.54"

困惑。任何帮助将不胜感激!

4

11 回答 11

19

这里描述了基本过程,但是有几个提示,所以我将描述整个解决方案(如果需要,请更改 R 版本和路径)

  1. 从这里安装最新的 RTools
  2. 安装mysql或者mysql的头文件和库文件
  3. 创建或编辑文件C:\Program Files\R\R-2.12.1\etc\Renviron.site并添加类似MYSQL_HOME=C:/mysql 的行(mysql文件的路径)
  4. 将 libmysql.lib 从 mysql/lib 复制到 mysql/lib/opt 以满足依赖关系。
  5. 将 libmysql.dll 复制到C:\Program Files\R\R-2.12.1\bin或复制到windows/system32目录。
  6. 运行install.packages('RMySQL',type='source')并等待编译将结束。

这在 Windows 7 64 位上对我有用,所以 32 位版本应该没有问题

最初发布在这里(类似的问题)。

于 2011-03-08T18:55:57.787 回答
3

首先,我会尝试按照此页面上的说明进行操作:http: //biostat.mc.vanderbilt.edu/wiki/Main/RMySQL

然后,确保您的计算机上确实有一个 MySQL 客户端,而不仅仅是服务器本身。我自己遇到了一个问题,我必须为客户端使用较旧的二进制文件,但您可以从 mysql 网站下载这些文件。

于 2011-01-25T05:49:10.350 回答
3

我创建了一个可能对人们有用的二进制文件:

http://kenahoo.blogspot.com/2011/09/rmysql-binary-for-windows-7.html

我基本上遵循了所有这些指示,包括范德比尔特页面上的指示,但出于某种原因,它似乎并不总是有效。无论如何,希望这可能对拥有与我使用的相同版本的东西的人有所帮助。

于 2011-09-30T19:54:08.553 回答
2

我在使用 R 2.12.1 x64 的 Windows 7 上遇到了同样的问题,并通过以下方式解决了它:

  1. PATH将我的变量中的 R 目录更改为C:\Program Files\R\R-2.12.1\bin\x64(而不仅仅是...\R-2.12.1\bin)。
  2. 复制...\MySQL Server 5.5\lib\libmysql.dll...\MySQL Server 5.5\bin\.
  3. R CMD INSTALL RMySQL_0.7-5.tar.gz在 cmd.exe中运行(install.packages('RMySQL',type='source')在 R 中仍然不起作用)。
于 2011-04-01T03:58:19.000 回答
2

我遇到了这个在 Windows7 64 位下安装 RMySQL 的分步指南。

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

我使用的软件是:

  1. 视窗 8 操作系统
  2. R3.0.2 - 64 位
  3. 工具 3.1
  4. MySQL 服务器社区版 5.6 - 64 位

按照上述指南(提供屏幕截图),我安装和加载 RMySQL 包的工作正常。

非常感谢 Arne Hendrik Schulz!

于 2014-02-02T05:36:13.020 回答
1

正如马雷克所说。此软件包没有 Windows 二进制文件。当我尝试安装 RPostgreSQL(因为 Mac 没有二进制文件)时,我在我的 Mac 上遇到了类似的麻烦,最后我不得不自己编译它并修改几个文件。

对于 MySQL 部分(如果您对 MySQL 不太了解),您可能希望使用WAMP,这无疑超出了您的需要,但易于安装以及启动和关闭。

对于一些编译帮助,您可能对Rtools感兴趣

高温高压

顺便说一句:你运行什么样的窗口(对不起,如果我错过了)

于 2011-01-25T11:22:20.633 回答
1

但是,您目前还有一个额外的要求(使用 MySQL 服务器版本 5.5 和 R2.12.1)按照 http://biostat.mc.vanderbilt.edu/wiki/Main/RMySQL 说明目前作为 libmySQL.dll 的位置与包装中的预期不同。

即用于64位编译。它希望 libmySQL.dll 位于 "${MYSQL_HOME}"/bin/libmySQL.dll 中,因此只需将 dll 复制到 /bin 目录即可编译。

用于 32 位编译。libmySQL.lib 预计在 "${MYSQL_HOME}"/lib/opt/libmysql.lib 中再次移动这应该可以解决问题。

或者,如果您不想或不能移动这些文件。然后您可以编辑源代码文件: Makevars.win Makevars.win32 Makevars.win64 适当地指向 /lib/libmysql.dll /lib/libmysql.lib

于 2011-05-26T13:30:19.467 回答
1

将 MySQL 和 RTools 目录添加到 PATH!

这是我的路径; ~blah~;C:\Program Files\MySQL\MySQL Server 5.5\bin;c:\rtools\bin;C:\Rtools\gcc-4.6.3\bin;

于 2012-03-11T17:59:33.107 回答
1

我最近两天一直在用 RMySQL 包安装 R,终于找到了解决方案,这里是安装 RMySQL 包的步骤:-

  1. 从以下链接下载软件: *a. R2.13.2:从http://cran.stat.sfu.ca/index.html下载 R

      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. 创建文件夹并复制文件

    一种。OPT:在 C:\Program Files\MySQL\MySQL Server 5.5\lib 下创建一个文件夹 OPT,并将
    MYSQLLIB.LIB 复制到上述路径。还将 libmysql.dll 复制到 \\R\R-2.14.0\bin\(64 位)或 \\R\R-2.14.0\bin\i386\(32 位)和 C:\Windows\System32。

湾。Renviron.site:创建或编辑文件 \\R\R-2.14.0\etc\Renviron.site 并添加一行:MYSQL_HOME =”C:/Program Files/MySQL/MySQL Server 5.5/” 注意:使用正斜杠和这里的双引号

C。libMySQL.dll:将此文件复制到 C:\Program Files\R\R-2.13.2\bin\i386 以及 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

  *COMMANDS:
  >library(RMySQL)
   >drv = dbDriver("MySQL")
   >con = dbConnect(drv,host="localhost",dbname="test",user="root",pass="root")
   >album = dbGetQuery(con,statement="select * from t_master")
   >album*
于 2012-04-26T13:42:53.197 回答
1

18 个月后,新的笔记本电脑,同样的问题。回到犯罪现场——对不起 2011 年 1 月的自己;我们在未来,这个装置仍然没有任何乐趣。

得到教训:

-更新的 RTools 是必不可少的。得到他们

-您是否看到类似的错误.onLoad failed in loadNamespace() for 'RMySQL', details?这似乎意味着您的系统环境变量存在问题。

在 R 中,运行

Sys.getenv('MYSQL_HOME')

如果它吐出一条像

 [1] "C:\\Program Files\\MySQL\\MySQL Server 5.6"

你很厉害。但如果它给你空字符串,你需要设置它。

这些都是 Windows 7 的方向,但如果没记错的话,过程在 XP 中非常相似。

1)调出系统属性>高级>环境变量。

2) 在下方的“系统变量”窗格中,单击“新建”。

3) 变量名MYSQL_HOME和值是 MySQL 安装的路径——我的是C:\Program Files\MySQL\MySQL Server 5.6

较新版本的 MySQL 似乎没有在安装时创建环境变量——这和 RMySQL 缺乏二进制文件解释了为什么这个问题获得了 8,000 次点击。

- 还是卡住了?以下是另外两篇深入的文章:1、2

于 2013-04-09T04:11:17.083 回答
1

以下为我在红帽 linux 中工作

wget http://cran.r-project.org/src/contrib/RMySQL_0.9-3.tar.gz
sudo R CMD INSTALL  --configure-args='--with-mysql-inc=/usr/include/mysql' --configure-args='--with-mysql-lib=/usr/lib64/mysql' RMySQL_0.9-3.tar.gz
于 2013-10-29T23:52:34.487 回答