2011-03-25 26 views
12

Wykonuję przejście z RSQLite do RMySQL i jestem zdezorientowany przez pola user i password. FWIW, używam Windows 7, R 2.12.2, MySQL 5.5 (wszystkie 64-bitowe) i RMySQL 0.7-5.Połącz się z bazą danych MySQL za pomocą RMySQL

Zainstalowałem RMySQL zgodnie z tym previous SO question i o ile wiem, działa (tj. Mogę załadować pakiet z library(RMySQL)). Ale kiedy próbuję uruchomić samouczek od R data import guide, pojawia się błąd "nie można połączyć się z bazą danych ...". Jest to kod z samouczka z przewodnikiem:

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) 

W drugiej linii pojawia się następujący błąd:

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

próbowałem zi bez user i password iz admin jako user. Próbowałem również użyć dbname, który wcześniej zrobiłem z wiersza poleceń i z takim, który nie istnieje.

Jakieś wskazówki? Czy jest tu dobre odniesienie? Dzięki!

Odpowiedz

5

Jest to najprawdopodobniej problem z instalacją po stronie serwera. Upewnij się, że dostęp sieciowy jest włączony.

Ponadto test lokalny z klientem wiersza polecenia ma wartość , a nie równoważny z typowym użyciem gniazd. Pomocne mogą być logi serwera mysql.

+1

Przejrzałem wszystkie ustawienia i wszystko wyglądało dobrze. Próbowałem pojedynczych cudzysłowów "zamiast podwójnych cytatów" i to działało! Zawsze uważałem, że te dwie były wymienne. Dzięki za wskazówki! –

2

Najpierw spróbuj połączyć się z serwerem MySQL przy użyciu MySQL Workbench lub wiersza poleceń mysql, używając tego samego parametru. Jeśli się połączy, to R również powinien móc się połączyć.

Zazwyczaj ten problem występuje, gdy serwer MySQL nie zezwala na połączenia ze zdalnych komputerów.

0

Jak ludzie ci mówili, możesz spróbować połączyć się z hostem z inną aplikacją, jako mysql workbench. Jakie dziwne! Kiedy próbowałem w RStudio, aby połączyć się z moją db z twoim kodem bez wskazania hosta w komendzie, nie mogłem się połączyć.

Potrzebowałem wskazać hosta (host = 'localhost') w poleceniu.

Powiązane problemy