2011-03-25 151 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')。