我是R的新手,我正在尝试将R连接到MySQL . 我已经为64位安装了 mysql-5.5.22-winx64
和 R-2.12.0
. 我已经设置 MYSQL_HOME environment path(C:\Program Files\MySQL\MySQL Server 5.5)
并尝试按照以下步骤操作:
-
从这里安装最新的RTools
-
安装MySQL或mysql的头文件和库文件
-
创建或编辑文件
C:\Program Files\R\R-2.12.1\etc\Renviron.site
并添加类似MYSQL_HOME=C:/mysql
的行(mysql文件的路径) -
从
mysql/lib
复制libmysql.lib
到mysql/lib/opt
以满足依赖关系 . -
复制
libmysql.dll
至C:\Program Files\R\R-2.12.1\bin
或windows/system32 directory
. -
运行
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*
请建议我如何解决这个问题?
最后我得到了解决方案: - 您可以在我的blog上详细查看解决方案 .
我在使用RMySQL包安装R的最后2天工作,最后得到了解决方案,这里是安装RMySQL包的步骤: -
- 从以下链接下载软件:
* 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*
- 设置以下环境变量
* 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
- 创建文件夹和复制文件
* 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*
- 运行命令
一个 . 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”)专辑*
7 回答
这不是一个直接的答案,但你仍然可以发现它有用:
使用更新版本的R(目前为2.15)
在Windows平台上,我宁愿使用RODBC Windows MySQL驱动程序,除非您处于具有异构平台(即Linux和Windows)的环境中,其中代码在团队成员之间大量共享 . 甚至然后选择在同一个脚本中使用RMySQL和RODBC,具体取决于它运行的平台是一个简单的
if() {...} else {...}
请注意,我并不是说没有成功的故事与你想要做的事情有关,但恕我直言,你将会更快地完成上述工作 .
您现在可以跳过所有复杂的步骤,只需执行
install.packages("RMySQL")
我周末在Mac OSX上遇到了一个黑客马拉松 - 尽管有一些参考资料(最后提到),我花了4个小时将所有东西拼凑在一起 . 我没有找到一个简单的步骤,所以我决定发布一个,虽然它在我心中是新鲜的 .
我不确定它与Windows的兼容性,但希望这些说明也会让你更容易 .
我试图让R和MySQL在本地环境中进行通信(可能需要对服务器环境进行更改) . 我使用XAMPP(虽然我没有使用RMySQL进行连接),但最后我能够使用PHP页面编写R文件,执行该文件,并将R写入MySQL表 . 据我所知,这仅适用于MacOSX ...
所有使用的软件都是dmg格式,因此不需要二进制安装 .
Download R并运行一些基本命令以确保它有效 .
在R中,您需要安装RODBC(如果您还没有) . 在R控制台中键入此项 .
这会安装RODBC,但自从OS Mavericks以来,某些文件不再包含在内,因此您会收到错误消息
并且您需要在正确的位置获取sql.h和sqlext.h文件 .
要以最简单的方式执行此操作,请确保已安装homebrew(简单说明) . 然后在终端中使用此code进行安装 .
完成后,再次进入R控制台
搜索MySQL for the appropriate ODBC installation . 我正在运行Mac OSX 10.6,所以我下载了dmg并安装了它 . 这照顾好自己 .
现在是棘手的部分 . 显然,Mac OX在最近的操作系统发布后取出了ODBC管理器,因此您需要下载ODBC管理器(http://www.odbcmanager.net/) . 它也是一个dmg文件,所以只需拖放到您的实用程序文件夹即可 .
我在5.3.6 dmg安装时遇到了困难(保持失败),所以我安装了5.2.7 .
打开ODBC管理器 . 您需要配置DSN,因此请单击“系统DSN”选项卡,然后单击“添加” .
您将看到一个弹出窗口,要求您选择一个驱动程序 . 我的MySQL ODBC安装基于“MySQL ODBC 5.2驱动程序” . 单击“确定” . 如果没有看到驱动程序,则需要确认已安装MySQL ODBC .
在下一个弹出窗口中,根据需要创建数据源名称(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”)
库(RODBC)
确保您已从XAMPP控制面板打开MySQL和Apache .
然后执行
odbcConnect(“test”) - 注意我在双引号中使用DSN的方式 . 必要时互换 .
这应该让你开始运行 . 您可以阅读有关在R中进行MySQL查询的其他教程 .
我从Stack Overflow(感谢所有人!),随机的其他网站/电子邮件交换历史以及Joseph Adler撰写的“R In A Nutshell”一书中的很多精彩文章中共同攻击了这一点,但如果我错过了某些内容,请告诉我不清楚 .
祝好运!
我也花了几个小时试图在Windows 10中完成这项工作,得到错误 . 我为RMySQL找到的修复程序既凌乱又复杂,但RODBC更加轻松,优雅地导致了解决方案 . 我有R,RStudio,MySQL服务器,MySQL Workbench,并且需要以下额外步骤才能使其工作:
在RStudio中安装软件包
install.packages(RODBC)
下载并安装MySQL ODBC连接器here
配置MySQL ODBC连接器 . Here是一些指示 . 只需从Windows 10的开始屏幕搜索'ODBC',它就会弹出该窗口 . 获取正确的连接参数并使用测试按钮确保它's working. It shows a list of your databases in a drop down menu once it connects. In 727334 give it a name which will go into the R script, say ' mysql_odbc'
现在您可以连接,运行查询并断开连接:
这对我有用:使用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.lib
粘贴到opt
文件夹中 . 然后Renviron.site
文件将具有:MYSQL_HOME=D:/Program Files/MySQL/MySQL Server 5.6
. 请注意正斜杠 .最后按照上面链接中提供的install.packages行的说明进行操作 . 我不得不做几次试验才能最终得到它 .
按照这里的指南:
http://www.ahschulz.de/2013/07/23/installing-rmysql-under-windows/
我跟着它,它就像一个魅力 . :)
如果这个错误在R
然后从外面R
并返回内部:
或者只是来自内部R.