2011-03-25 13 views
12

Estoy haciendo el cambio de RSQLite a RMySQL y me confunden los campos user y password. FWIW, estoy ejecutando Windows 7, R 2.12.2, MySQL 5.5 (todos 64 bit) y RMySQL 0.7-5.Conectarse a la base de datos MySQL con RMySQL

Instalé RMySQL según lo prescrito en este previous SO question, y hasta donde yo sé que funciona (es decir, puedo cargar el paquete con library(RMySQL)). Pero cuando intento ejecutar el tutorial desde el R data import guide, aparece el error "No se pudo conectar a la base de datos ...". Este es el código de la clase particular de la guía:

library(RMySQL) # will load DBI as well 
## open a connection to a MySQL database 
con <- dbConnect(dbDriver("MySQL"), user = "root", password = "root", dbname = "pookas") 
## list the tables in the database 
dbListTables(con) 
## load a data frame into the database, deleting any existing copy 
data(USArrests) 
dbWriteTable(con, "arrests", USArrests, overwrite = TRUE) 
dbListTables(con) 
## get the whole table 
dbReadTable(con, "arrests") 
## Select from the loaded table 
dbGetQuery(con, paste("select row_names, Murder from arrests", 
         "where Rape > 30 order by Murder")) 
dbRemoveTable(con, "arrests") 
dbDisconnect(con) 

En la segunda línea aparece el siguiente error:

> con <- dbConnect(dbDriver("MySQL"), user = "richard", password = "root", dbname = "pookas") 
Error in mysqlNewConnection(drv, ...) : 
    RS-DBI driver: (Failed to connect to database: Error: Access denied for user 'richard'@'localhost' (using password: NO) 
) 

He tratado con y sin user y password y con admin como user. También intenté usar un dbname que hice antes con la línea de comando y con uno que no existe.

¿Algún consejo? ¿Hay una buena referencia aquí? ¡Gracias!

Respuesta

5

Es muy probable que sea un problema de instalación en el lado del servidor. Asegúrese de que el acceso en red esté habilitado.

Además, una prueba local con el cliente de la línea de comandos es no equivalente a que normalmente usa sockets. Los registros del servidor mysql pueden ser útiles.

+1

Revisé todas las configuraciones y todo se veía bien. Probé con comillas simples 'en lugar de comillas dobles' ¡y funcionó! Siempre pensé que las dos eran intercambiables. ¡Gracias por los consejos! –

2

Primero intente conectarse al servidor MySQL utilizando MySQL Workbench o la línea de comando mysql usando el mismo parámetro. Si se conecta, R también debería poder conectarse.

Normalmente, este problema se produce cuando el servidor MySQL no permite conexiones desde máquinas remotas.

0

Como la gente le ha dicho, puede intentar conectarse al host con otra aplicación como mysql workbench. ¡Que extraño! Cuando he intentado en RStudio conectarme a mi base de datos con su código sin indicar el host en el comando, no he podido conectarme.

He necesitado indicar el host (host = 'localhost') en el comando.

Cuestiones relacionadas