[R-es] Aprendiendo RMySQL
Xavier Fernández i Marín
xfim.ll en gmail.com
Sab Mayo 8 20:11:42 CEST 2010
Kjetil Halvorsen vas escriure el dia dv, 07 mai 2010:
> fue mandado por error antes de terminar .... continuando abajo
>
> 2010/5/7 Kjetil Halvorsen <kjetil1001 en gmail.com>
>
> > Hola!
> >
> > Estoy tratando de aprender como usar un base de datos con R. Nunca he usado
> > un base de
> > datos antes. Trato con RMySQL, todo instalado en ubuntu linux 10.04.
> >
> > library(RMySQL)
> > myBase <- dbDriver("MySQL")
> >
> > con <- dbConnect(myBase)
> > Error in mysqlNewConnection(drv, ...) :
> > RS-DBI driver: (Failed to connect to database: Error: Access denied for
> > user 'kjetil'@'localhost' (using password: NO)
> > )
> >
> >
> > Que debo hacer? Es necesario iniciar MySQL antes, afuera de R?
> >
> > Mi intenci?n por el momento simplemente es iniciar un base nuevo, llenarlo
> > con algunos
> >
> datos de un data.frame, almacenarlo, t talvez tratar de accederlo desde
> afuera de R como un control.
Hola,
El error parece indicar que MySQL está funcionando, pero que no hay
permisos para acceder a la base de datos.
Has intentado acceder a la base de datos desde la línea de comandos? Te da
el mismo error? Si es así, debes asegurarte de dar permisos a tu usuario.
En toto caso, asegúrate de que MySQL está funcionando (en Ubuntu es algo
como "/etc/init.d/mysqld" ... ¿status?.
Para evitar pasar argumentos a MySQL puedes utilizar el archivo ~/.my.cnf,
donde puedes añadir tu usuario y contraseña (asegurándote de dar los
permisos de lectura y escritura adecuados para que otros usuarios no puedan
acceder).
Te dejo una pequeña función que uso para cargar los datos desde MySQL:
-----8<---------------
bdd <- function(dfoutput, database, query) {
mgr <- dbDriver("MySQL")
con <- dbConnect(mgr, dbname=database)
assign(dfoutput, dbGetQuery(con, query), env=.GlobalEnv)
dbDisconnect(con)
dbUnloadDriver(mgr)
}
select <- "SELECT ..........."
# este es el punto donde debes aprender MySQL, como ha dicho Xavi en el
# mensaje anterior
# Para recuperar los datos desde la base de datos
bdd("nombre.objeto.en.R", "base de datos", query=select)
-----8<---------------
Un saludo,
--
- Xavier -
Más información sobre la lista de distribución R-help-es