使用RMySQL连接MySQL数据库

时间:2011-03-25 11:44:48

标签: r rmysql

我正在从RSQLite迁移到RMySQL,我对userpassword字段感到困惑。 FWIW,我正在运行Windows 7,R 2.12.2,MySQL 5.5(全部64位)和RMySQL 0.7-5。

我按照此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以及使用admin user。我也尝试使用我之前使用命令行创建的dbname和使用不存在的{{1}}。

任何提示?这里有好的参考吗?谢谢!

3 个答案:

答案 0 :(得分:5)

这很可能是服务器端的设置问题。确保已启用网络访问。

此外,使用命令行客户端的本地测试等效,因为它通常使用套接字。 mysql服务器日志可能会有所帮助。

答案 1 :(得分:2)

首先尝试使用MySQL Workbench或命令行mysql使用相同的参数连接到MySQL服务器。如果它连接,那么R也应该能够连接。

通常,当MySQL服务器不允许来自远程计算机的连接时,会出现此问题。

答案 2 :(得分:0)

正如人们告诉你的那样,你可以尝试使用其他应用程序作为mysql workbench连接到主机。多奇怪啊!当我在RStudio中尝试使用您的代码连接到我的数据库而没有在命令中指示主机时我无法连接。

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