根据 my question earlier today ,我怀疑我有一个未关闭的连接问题,它阻止数据被注入(inject)我的 MySQL 数据库。允许数据进入当前未使用的表(因此我怀疑许多打开的连接阻止上传到该特定表)。
我在 Ubuntu 服务器上使用 RMySQL 将数据上传到 MySQL 数据库。
我正在寻找一种方法来 a) 确定连接是否打开 b) 如果打开则关闭它们。 SQL 命令行中的命令 exec sp_who
和 exec sp_who2
返回 SQL 代码错误。
另请注意:当我仅尝试该表时,我能够连接、完成上传过程并成功结束 R 过程,并且服务器上没有数据(通过 SQL 命令行检查)。
(顺便说一下,如果所有其他方法都失败了,是否可以简单地删除表并创建一个具有相同名称的新表来修复它?这会很痛苦,但可行。)
最佳答案
一个。 dbListConnections(dbDriver(drv = "MySQL"))
b. dbDisconnect(dbListConnections(dbDriver(drv = "MySQL"))[[你要关闭的 MySQLConnection 的索引]])
。关闭所有: lapply( dbListConnections( dbDriver( drv = "MySQL")), dbDisconnect)
是的,您可以只重写表,当然您会丢失所有数据。或者您可以指定 dbWriteTable(, ..., overwrite = TRUE
)。
我也会使用其他选项,例如 row.names
、header
、field.types
、quote
、sep
、eol
。我在 RMySQL 中也有很多奇怪的行为。我不记得细节了,但是当我做错了什么时似乎没有错误消息,比如忘记设置 row.names。高温
关于mysql - 使用 RMySQL 关闭事件连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509970/