【问题标题】:No database selected with RMySQL没有使用 RMySQL 选择数据库
【发布时间】:2016-04-14 09:32:35
【问题描述】:

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

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

有没有办法查到名字?还是我犯了完全不同的错误?

【问题讨论】:

    标签: r rmysql


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!有没有办法查到名字?我是否必须在他们的网站上找到这个信息,或者我可以通过 R 的查询获得该信息?
    • 此页面上的文件夹名称ftp.ensembl.org/pub/release-83/mysql似乎也是各种数据库的名称
    • 好的,所以我必须事先知道数据库名称。谢谢!
    【解决方案2】:

    奇怪的是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'
          )
    

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 2019-07-09
      • 2014-10-31
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 2019-09-29
      相关资源
      最近更新 更多