从r连接到mysql

55ooxyrt  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(308)

我正在尝试从r连接到mysql。我已经在我的机器上安装了“8.0.11mysql社区服务器-gpl”。在r studio中,我安装了rmysql库。
当我发出命令时:

  1. con = dbConnect(RMySQL::MySQL(),user="root", password = "password", dbname="test")

我不断得到错误:
.local(drv,…)中出错:未能连接到数据库:错误:未知数据库“test”
我不知道为什么它总是给这个错误。有什么建议吗?

o0lyfsai

o0lyfsai1#

下面是我用来从r访问mysql的代码

  1. # 1. Library
  2. library(RMySQL)
  3. # 2. Settings
  4. db_user <- 'your_name'
  5. db_password <- 'your_password'
  6. db_name <- 'database_name'
  7. db_table <- 'your_data_table'
  8. db_host <- '127.0.0.1' # for local access
  9. db_port <- 3306
  10. # 3. Read data from db
  11. mydb <- dbConnect(MySQL(), user = db_user, password = db_password,
  12. dbname = db_name, host = db_host, port = db_port)
  13. s <- paste0("select * from ", db_table)
  14. rs <- dbSendQuery(mydb, s)
  15. df <- fetch(rs, n = -1)
  16. on.exit(dbDisconnect(mydb))

请检查一下你这边的情况。
另外,您似乎错过了“db\u table”参数。

展开查看全部
lhcgjxsq

lhcgjxsq2#

显而易见的原因可能是“我希望”,因为你没有包括主机ip。我更喜欢用 pool 包裹。那么你的连接电话可能是

  1. library(DBI)
  2. library(RMySQL)
  3. library(pool)
  4. pool <- dbPool(
  5. drv = RMySQL::MySQL(),
  6. dbname = "db_name",
  7. host = "127.0.0.1",
  8. username = 'user_name',
  9. password = 'password',
  10. port = 3306
  11. )
  12. onStop(function() {
  13. poolClose(pool)
  14. })

另一件事,最好在testdb上定义具有适当权限的用户,并在连接调用中使用此用户,而不是将root作为db连接安全性最佳实践。

展开查看全部

相关问题