2011-03-25 134 views
12

我正在從RSQLite移動到RMySQL,我對userpassword字段感到困惑。 FWIW,我運行的是Windows 7,R 2.12.2,MySQL 5.5(所有64位)和RMySQL 0.7-5。使用RMySQL連接到MySQL數據庫

我按照previous SO question的規定安裝了RMySQL,據我所知它的工作原理(即我可以使用library(RMySQL)加載包)。但是當我嘗試從R data import guide運行教程時,出現「無法連接到數據庫...」錯誤。這是從引導教程代碼:

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) 

在第二行中,我得到了以下錯誤:

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

我曾嘗試與不userpassword與管理爲user。我也曾嘗試使用我以前在命令行中創建的dbname以及不存在的一個。

任何提示?這裏有一個很好的參考嗎?謝謝!

回答

5

這很可能是服務器端的設置問題。確保網絡訪問已啓用。

另外,命令行客戶端的本地測試是而不是,因爲它通常使用套接字。 mysql服務器日誌可能會有所幫助。

+1

我經歷了所有的設置,一切看起來不錯。我試過單引號而不是雙引號「,它的工作原理!我一直認爲這兩個是可以互換的。感謝指針! – 2011-03-25 13:35:41

2

首先嚐試使用MySQL Workbench或命令行mysql使用相同的參數連接到MySQL服務器。如果它連接,那麼R應該也能夠連接。

當MySQL服務器不允許來自遠程機器的連接時,通常會出現此問題。

0

正如人們告訴你的,你可以嘗試連接到其他應用程序的主機作爲mysql工作臺。多奇怪!當我嘗試在RStudio中使用您的代碼連接到我的數據庫時,未註明命令中的主機,我無法連接。

我需要在命令中指明主機(host ='localhost')。