2011-03-25 30 views
12

Sto passando da RSQLite a RMySQL e sono confuso dai campi user e password. FWIW, sto usando Windows 7, R 2.12.2, MySQL 5.5 (tutti 64 bit) e RMySQL 0.7-5.Connessione al database MySQL con RMySQL

Ho installato RMySQL come prescritto in questo previous SO question e, per quanto ne so, funziona (vale a dire, posso caricare il pacchetto con library(RMySQL)). Ma quando provo a eseguire il tutorial dal R data import guide, ottengo un errore "non è riuscito a connettersi al database ...". Questo è il codice dal tutorial dalla guida:

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) 

Sulla seconda riga ottengo il seguente errore:

> 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) 
) 

Ho provato con e senza user e password e con admin come user. Ho anche provato a usare uno dbname che ho creato prima con la riga di comando e con uno che non esiste.

Qualche consiglio? C'è un buon riferimento qui? Grazie!

risposta

5

Questo è molto probabilmente un problema di installazione sul lato server. Assicurati che l'accesso in rete sia abilitato.

Inoltre, un test locale con il client della riga di comando è non equivalente in quanto solitamente utilizza socket. I log del server mysql possono essere utili.

+1

Ho controllato tutte le impostazioni e tutto sembrava a posto. Ho provato le virgolette singole "invece delle doppie virgolette" e ha funzionato! Ho sempre pensato che i due fossero intercambiabili. Grazie per i suggerimenti! –

2

Prima prova a connettersi al server MySQL utilizzando MySQL Workbench o la riga di comando mysql utilizzando lo stesso parametro. Se si connette, anche R dovrebbe essere in grado di connettersi.

In genere questo problema si verifica quando il server MySQL non consente le connessioni da macchine remote.

0

Come le persone hanno detto, è possibile provare a connettersi all'host con altre applicazioni come mysql workbench. Che strano! Quando ho provato in RStudio a connettermi al mio db con il tuo codice senza indicare l'host nel comando non sono riuscito a connetterti.

Ho bisogno di indicare l'host (host = 'localhost') nel comando.

Problemi correlati