9

我有一个连接在同一设备上正常工作的项目。我突然收到下面的错误。我可以通过 MySQL 工作台从同一设备连接。

可能是什么原因?

library(RMySQL)

con <- dbConnect(RMySQL::MySQL(),
                 host = "xxx",
                 dbname="yyy",
                 user = "zzz",
                 password = "############")

Error in .local(drv, ...) : 
  Failed to connect to database: Error: Lost connection to MySQL server at 'reading authorization packet', system error: 10060

这是会话信息

> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RMySQL_0.10.10 DBI_0.4-1     

loaded via a namespace (and not attached):
[1] tools_3.3.1
4

3 回答 3

6

自 2017 年 2 月 1 日以来,我的代码在 2017 年 3 月 29 日首次进行系统范围的软件包更新后开始出现这个确切的问题。

查看 RMySQL 的版本控制,RMySQL_0.10.9.tar.gz 发布于 2016-05-08 15:39 RMySQL_0.10.10.tar.gz 发布于2017-03-21 07:50

我将我的版本恢复到 0.10.9,问题就消失了:

require(devtools)
install_version("RMySQL", version = "0.10.9", repos = "http://cran.us.r-project.org")

我将您的问题发布到 RMySQL 错误页面,所以我们将看看他们是否解决了它

于 2017-03-30T21:36:47.137 回答
0

我最近查看了另一个最新版本的 RMySQL 包,RMySQL_0.10.11.zip 也存在这个问题。抱歉,目前不允许发表评论,因此想更新仍然存在问题的版本。

附加信息 我系统上与 MySQL 的连接正在从

1) 命令行

2) MySQL 工作台

3) 画面

4)Excel

它只是不适用于 R。我检查了以下内容

链接1

链接2

链接3

SHOW GLOBAL STATUS like 'Aborted%clients%';

并且每次从 R 断开连接时,上述变量的值都会变为 +1。甚至在做

SET GLOBAL connect_timeout = 10;

没有帮助。

更新

是否有安装 PERL 以使用 RMySQL 的依赖项/要求?截至目前,我的系统没有 PERL。如果这个要求确实是真的,那么这可能是原因之一,并且可能是最新版本修复了问题。请让我知道 PERL 依赖项?

于 2017-04-20T15:30:41.877 回答
0

通过遵循@Page 的建议查看包版本控制,我能够使用 R 3.4 在我的 PC 上解决此问题。但是,我不仅需要安装早期版本的 RMySQL(从 0.10.11 恢复到 0.10.9),还需要更改其依赖包 DBI 的版本(从 0.6-1 恢复到 0.5),使用以下命令:

require(devtools)
install_version("DBI", version = "0.5", repos = "http://cran.us.r-project.org")
install_version("RMySQL", version = "0.10.9", repos = "http://cran.us.r-project.org")
于 2017-06-15T21:30:59.287 回答