没有使用 RMySQL 选择数据库

No database selected with RMySQL

我正在尝试使用 RMySQL 连接到远程 public 可访问 MySQL 服务器 EnsEMBL public 服务器,但是当我尝试列出表,出现错误:

library(RMySQL)

mydb = dbConnect(MySQL(), 
                 user = 'anonymous',
                 port = 5306,
                 host = 'asiadb.ensembl.org')

dbListTables(mydb)

Error in .local(conn, statement, ...) : 
  could not run statement: No database selected

有没有办法找出名字?还是我犯了一个完全不同的错误?

您必须在 dbConnect 调用中指定数据库的名称。例如:

mydb = dbConnect(MySQL(), 
                 user = 'anonymous',
                 port = 5306,
                 host = 'asiadb.ensembl.org',
                 db = 'homo_sapiens_core_83_38')

dbListTables(mydb)

奇怪的是 database = 'testdb'R

中用 dbExecute 执行
db <- dbConnect(RMySQL::MySQL(), 
        user = 'root',
        password = 'pwd123',
        host = 'localhost',
        database = 'testdb'
      )
dbExecute(db, MySQLStatement) # Executed Without Error

但使用时 dbListTables(db) 显示未选择数据库。

database 更改为 db 按预期工作

db <- dbConnect(RMySQL::MySQL(), 
        user = 'root',
        password = 'pwd123',
        host = 'localhost',
        db = 'testdb'
      )