我在本地 mysql 数据库中有一个员工表。我正在尝试使用 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 库通过 shiny 连接到它。
最佳答案
dbConnect
的文档说第一个参数是:drv
- 一个从 DBIDriver 继承的对象,或一个现有的 DBIConnection 对象(为了克隆一个现有的连接).
当我连接到 MS SQL 服务器时,我使用命令:
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(),
关于mysql - 如何使用 dbplyr 连接到 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57814984/