我在本地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库通过光泽连接到它。
答案 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(),