2014-08-31 63 views
0

我已經安裝了R3.0.1。 Rtools也被安裝。 MySQL版本5.7已安裝。我想將R連接到MySQL,並且我試圖通過R中的RMySQL包來執行該操作。 儘管在查看各種SO問題後最終完成了RMySQL的安裝,但庫命令會給出錯誤。請參閱下面的完整R日誌。請幫忙。R庫RMySQL無法啓動

> install.packages("RMySQL",type="source") 
trying URL 'http://cran.rstudio.com/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' ... 
** package 'RMySQL' successfully unpacked and MD5 sums checked 
checking for $MYSQL_HOME... C:/Program Files/MySQL/MySQL Server 5.7 
cygwin warning: 
MS-DOS style path detected: C:/Program 
Preferred POSIX equivalent is: /cygdrive/c/Program 
CYGWIN environment variable option "nodosfilewarning" turns off this warning. 
Consult the user's guide for more details about POSIX paths: 
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames 
test: Files/MySQL/MySQL: unknown operand 
** libs 
Warning: this package has a non-empty 'configure.win' file, 
so building only the main architecture 

cygwin warning: 
MS-DOS style path detected: D:/SOFTWA~1/R-30~1.3/etc/x64/Makeconf 
Preferred POSIX equivalent is: /cygdrive/d/SOFTWA~1/R-30~1.3/etc/x64/Makeconf 
CYGWIN environment variable option "nodosfilewarning" turns off this warning. 
Consult the user's guide for more details about POSIX paths: 
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames 
gcc -m64 -I"D:/SOFTWA~1/R-30~1.3/include" -DNDEBUG -I"C:/Program Files/MySQL/MySQL  Server 5.7"/include -I"d:/RCompile/CRANpkg/extralibs64/local/include"  -O2 -Wall - std=gnu99 -mtune=core2 -c RS-DBI.c -o RS-DBI.o 
RS-DBI.c: In function 'RS_na_set': 
RS-DBI.c:1219:11: warning: variable 'c' set but not used [-Wunused-but-set-variable] 
gcc -m64 -I"D:/SOFTWA~1/R-30~1.3/include" -DNDEBUG -I"C:/Program Files/MySQL/MySQL Server 5.7"/include -I"d:/RCompile/CRANpkg/extralibs64/local/include"  -O2 -Wall - std=gnu99 -mtune=core2 -c RS-MySQL.c -o RS-MySQL.o 
RS-MySQL.c: In function 'RS_MySQL_fetch': 
RS-MySQL.c:657:13: warning: variable 'fld_nullOk' set but not used [-Wunused-but-set- variable] 
RS-MySQL.c: In function 'RS_DBI_invokeBeginGroup': 
RS-MySQL.c:1137:30: warning: variable 'val' set but not used [-Wunused-but-set-variable] 
RS-MySQL.c: In function 'RS_DBI_invokeNewRecord': 
RS-MySQL.c:1158:20: warning: variable 'val' set but not used [-Wunused-but-set-variable] 
RS-MySQL.c: In function 'RS_MySQL_dbApply': 
RS-MySQL.c:1219:38: warning: variable 'fld_nullOk' set but not used [-Wunused-but-set-variable] 
gcc -m64 -shared -s -static-libgcc -o RMySQL.dll tmp.def RS-DBI.o RS-MySQL.o C:/Program Files/MySQL/MySQL Server 5.7/bin/libmySQL.dll - Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64 -Ld:/RCompile/CRANpkg/extralibs64/local/lib -LD:/SOFTWA~1/R-30~1.3/bin/x64 -lR 
installing to D:/Softwares/R-3.0.3/library/RMySQL/libs/x64 
** R 
** inst 
** preparing package for lazy loading 
Creating a generic function for 'format' from package 'base' in package 'RMySQL' 
Creating a generic function for 'print' from package 'base' in package 'RMySQL' 
** help 
*** installing help indices 
** building package indices 
** installing vignettes 
** testing if installed package can be loaded 
MYSQL_HOME defined as C:/Program Files/MySQL/MySQL Server 5.7 
* DONE (RMySQL) 

The downloaded source packages are in 
‘C:\Users\mitrabhanu.panda\AppData\Local\Temp\RtmpgZHT8R\downloaded_packages’ 

> library(RMySQL) 
Looking in C:\Program Files/MySQL, C:/MySQL, D:/MySQL, E:/MySQL, F:/MySQL, G:/MySQL, C:/xampp/MySQL, D:/xampp/MySQL, E:/xampp/MySQL, F:/xampp/MySQL, G:/xampp/MySQL, C:/Apps/MySQL, D:/Apps/MySQL, E:/Apps/MySQL, F:/Apps/MySQL, G:/Apps/MySQL 
Found C:\Program Files/MySQL 
Error : .onLoad failed in loadNamespace() for 'RMySQL', details: 
call: setwd(bin) 
error: character argument expected 
Error: package or namespace load failed for ‘RMySQL’ 

請讓我知道我做錯了什麼。

+0

爲什麼不使用[RJDBC](http://cran.r-project.org/web/packages/RJDBC/index.html)?我將提供一個從mysql中檢索記錄的例子,使用它作爲答案。 – hd1 2014-08-31 08:48:12

+0

這已經在SO上回答了很多次。例如http://stackoverflow.com/questions/23545796/another-error-when-installing-rmysql-in-windows-8-1?rq=1 – 2014-08-31 10:23:15

回答

0

寫在我的評論,這裏是從MySQL讀取表中的示例代碼:

require(RJDBC) 
j <- JDBC(classPath='/path/to/mysql/jdbc/jar', driverClass='com.mysql.jdbc.Driver') 
connection <- dbConnect(j, 'jdbc:mysql://localhost/databasename', 'myusername','mypassword') 
on.exit(dbDisconnect(connection)) 
data.frame.from.sql <- dbReadTable(connection, 'tablename') 

這將讀取名爲表名數據庫名稱data.frame.from表。 sql作爲R數據框,您可以根據需要操作。我希望這有幫助。

+0

謝謝,但即使這是造成問題。我以管理員權限重新啓動RStudio,現在RMySQL正在運行。 – user1859050 2014-08-31 13:44:26

+0

我認爲這是答案,因爲它給出了一種不同的方式來做同樣的事情。 – user1859050 2014-08-31 14:43:34