我正在尝试从r连接到mysql。我已经在我的机器上安装了“8.0.11mysql社区服务器-gpl”。在r studio中,我安装了rmysql库。当我发出命令时:
con = dbConnect(RMySQL::MySQL(),user="root", password = "password", dbname="test")
我不断得到错误:.local(drv,…)中出错:未能连接到数据库:错误:未知数据库“test”我不知道为什么它总是给这个错误。有什么建议吗?
o0lyfsai1#
下面是我用来从r访问mysql的代码
# 1. Library library(RMySQL) # 2. Settings db_user <- 'your_name' db_password <- 'your_password' db_name <- 'database_name' db_table <- 'your_data_table' db_host <- '127.0.0.1' # for local access db_port <- 3306 # 3. Read data from db mydb <- dbConnect(MySQL(), user = db_user, password = db_password, dbname = db_name, host = db_host, port = db_port) s <- paste0("select * from ", db_table) rs <- dbSendQuery(mydb, s) df <- fetch(rs, n = -1) on.exit(dbDisconnect(mydb))
请检查一下你这边的情况。另外,您似乎错过了“db\u table”参数。
lhcgjxsq2#
显而易见的原因可能是“我希望”,因为你没有包括主机ip。我更喜欢用 pool 包裹。那么你的连接电话可能是
pool
library(DBI) library(RMySQL) library(pool) pool <- dbPool( drv = RMySQL::MySQL(), dbname = "db_name", host = "127.0.0.1", username = 'user_name', password = 'password', port = 3306 ) onStop(function() { poolClose(pool) })
另一件事,最好在testdb上定义具有适当权限的用户,并在连接调用中使用此用户,而不是将root作为db连接安全性最佳实践。
2条答案
按热度按时间o0lyfsai1#
下面是我用来从r访问mysql的代码
请检查一下你这边的情况。
另外,您似乎错过了“db\u table”参数。
lhcgjxsq2#
显而易见的原因可能是“我希望”,因为你没有包括主机ip。我更喜欢用
pool
包裹。那么你的连接电话可能是另一件事,最好在testdb上定义具有适当权限的用户,并在连接调用中使用此用户,而不是将root作为db连接安全性最佳实践。