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

标签 mysql r dbplyr

我在本地 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/

相关文章:

r - dbplyr 将字符更改为临时表中的日期格式

mysql - dbplyr 字符列作为 TEXT 而不是 VARCHAR 到数据库

mysql - 使用 MySQL 触发器在同一表中更新行时插入新行

r - 如何在分解的时间序列图中自定义标题、轴标签等

r - "package ‘mgcv’ 无法加载”仅在 RStudio 中

r - 使用 dbSendQuery 在数据库上创建表时避免警告消息 “There is a result object still in use”

MySQL 存储函数在运行时不返回相同的结果 - 检索父 ID

mysql - MySql 中分割逗号 (,) 和脱字号 (^) 分隔值

php - 使用 AJAX 时未正确转义引号

在数据框中重复应用 ave 计算组均值