R和RMySQL,如何获取连接的数据库名称?

R and RMySQL, how do I get the database name of the connection?

我正在通过 RMySQL 从 R 访问 MySQL 连接。 我找到了一个 MySQL 命令来获取 database/schema 名称

SELECT DATABASE();

所以我可以通过 dbGetQuery() 调用它以从我的 R 脚本中获取它。

不过,我还发现调用 summary(connection) 会自动获取数据库等信息。

> summary(connection)
<MySQLConnection:(6746,0)> 
  User: root 
  Host: localhost 
  Dbname: my_database
  Connection type: Localhost via UNIX socket 
  No resultSet available

由于结果很快,我假设连接在 R 中存储了该信息,但我不知道如何访问其内容。

我尝试检查它的环境,甚至查看 RMySQL 的源代码来理解它,但是我还没有足够的经验……还没有。

那么如何将 Dbname 作为变量获取(未打印)? 来自 Mx 的感谢和问候。

虽然不太明白为什么要把数据库名作为变量,可以这样抓取:

db_info <- capture.output(mysqlDescribeConnection(MySQLcon, verbose = T))

注意使用 mysqlDescribeConnection(),而不是 summary

dbname 可以作为输出向量的第四个元素访问:

db_info[4]
[1] "  Dbname: my_database "

如果您确实打算将其用作变量,则需要进行一些字符串操作。

db <- strsplit(db_info[4], ' ')

final_dbname <- db[[1]][4]
[1] "my_database"