如何使用dbplyr连接到mysql数据库

时间:2019-09-06 02:25:03

标签: mysql r dbplyr

我在本地mysql数据库中有一个employee表。我正在尝试使用dbplyr和DBI连接到数据库/表并将数据查询到数据框中。

这是我的代码:

library(dbplyr)
library(DBI)
library(RMySQL)
my_db <-  DBI::dbConnect(RMySQL::MySQL()(), 
                        host = "127.0.0.1",
                        port = 3306,
                        user = "username",
                        password = "password"
  )

employee <- tbl(my_db, "employee")

view(employee)

运行脚本时,出现以下错误:

Error in DBI::dbConnect((RMySQL::MySQL())(), host = "127.0.0.1", user = "root",  : 
  attempt to apply non-function

我一直在搜索错误消息,但是找不到解决方法。

我使用的是mysql 8.0CE数据库,并且能够使用RMySQL库通过光泽连接到它。

1 个答案:

答案 0 :(得分:2)

dbConnect的文档说,第一个参数是:drv-从DBIDriver继承的对象,或者是现有的DBIConnection对象(以克隆现有的连接)。

当我连接到MS SQL Server时,我使用以下命令:

db_connection = dbConnect(odbc::odbc(), .connection_string = connection_string)

其中连接字符串是捕获主机,端口等的另一种方式。

RMySQL文档给出了以下示例:

con <- dbConnect(RMySQL::MySQL(), dbname = "test")

所以这个问题可能是多余的括号:

# current code causing error
my_db <-  DBI::dbConnect(RMySQL::MySQL()(), 
# try this instead
my_db <-  DBI::dbConnect(RMySQL::MySQL(),