[从3月中开始,dbWriteTable停止正常工作,现在仅将data.frame的第一行写入MySQL表。发生这种情况后,我将MySQL,MySQL Workbench,RStudio,R和所有R软件包更新为最新版本,但没有任何改进。最初,我认为它仅在追加到数据库表时发生,但在写入新创建的表时也发生。
它不会产生错误消息,并且dbWriteTable会成功返回TRUE,但是只有一行已写入MySQL表。
devtools::session_info()
- Session info --------------------------------------------------------------------------
setting value
version R version 3.6.3 (2020-02-29)
os Windows 10 x64
system x86_64, mingw32
ui RStudio
language (EN)
collate English_United States.1252
ctype English_United States.1252
tz America/Los_Angeles
date 2020-04-14
- Packages -------------------------------------------------------------------------
package * version date source
- assertthat 0.2.1 2019-03-21 CRAN (R 3.6.0)
- backports 1.1.6 2020-04-05 CRAN (R 3.6.3)
- bit 1.1-15.2 2020-02-10 CRAN (R 3.6.2)
- bit64 0.9-7 2017-05-08 CRAN (R 3.6.2)
- blob 1.2.1 2020-01-20 CRAN (R 3.6.3)
- callr 3.4.3 2020-03-28 CRAN (R 3.6.3)
- cli 2.0.2 2020-02-28 CRAN (R 3.6.3)
- crayon 1.3.4 2017-09-16 CRAN (R 3.5.0)
- DBI * 1.1.0 2019-12-15 CRAN (R 3.6.3)
- desc 1.2.0 2018-05-01 CRAN (R 3.5.0)
- devtools 2.3.0 2020-04-10 CRAN (R 3.6.3)
- digest 0.6.25 2020-02-23 CRAN (R 3.6.3)
- ellipsis 0.3.0 2019-09-20 CRAN (R 3.6.2)
- fansi 0.4.1 2020-01-08 CRAN (R 3.6.2)
- fs 1.4.1 2020-04-04 CRAN (R 3.6.3)
- glue 1.4.0 2020-04-03 CRAN (R 3.6.3)
- hms 0.5.3 2020-01-08 CRAN (R 3.6.2)
- magrittr 1.5 2014-11-22 CRAN (R 3.5.0)
- memoise 1.1.0 2017-04-21 CRAN (R 3.5.0)
- odbc * 1.2.2 2020-01-10 CRAN (R 3.6.3)
- pkgbuild 1.0.6 2019-10-09 CRAN (R 3.6.2)
- pkgconfig 2.0.3 2019-09-22 CRAN (R 3.6.2)
- pkgload 1.0.2 2018-10-29 CRAN (R 3.5.1)
- prettyunits 1.1.1 2020-01-24 CRAN (R 3.6.2)
- processx 3.4.2 2020-02-09 CRAN (R 3.6.2)
- ps 1.3.2 2020-02-13 CRAN (R 3.6.2)
- R6 2.4.1 2019-11-12 CRAN (R 3.6.2)
- Rcpp 1.0.4.6 2020-04-09 CRAN (R 3.6.3)
- remotes 2.1.1 2020-02-15 CRAN (R 3.6.2)
- rlang 0.4.5 2020-03-01 CRAN (R 3.6.3)
- rprojroot 1.3-2 2018-01-03 CRAN (R 3.5.0)
- rstudioapi 0.11 2020-02-07 CRAN (R 3.6.2)
- sessioninfo 1.1.1 2018-11-05 CRAN (R 3.5.1)
- testthat 2.3.2 2020-03-02 CRAN (R 3.6.3)
- usethis 1.6.0 2020-04-09 CRAN (R 3.6.3)
- vctrs 0.2.4 2020-03-10 CRAN (R 3.6.3)
- withr 2.1.2 2018-03-15 CRAN (R 3.5.0)
[1] D:/R_HOME/library
[2] D:/R_HOME/R-3.6.3/library
library(DBI)
#Connect to MySQL database
con <- dbConnect(odbc::odbc(),
dsn =mydsn,
database = mydatabase,
uid=myId,
pwd= myPassword)
dbListTables(con)
x <- dbWriteTable(con, "mtcars", mtcars, temporary = FALSE)
dbReadTable(con, "mtcars")
x2 <- dbWriteTable(con, "mtcars", mtcars[2:3, ], append=TRUE, temporary = FALSE)
dbReadTable(con, "mtcars")
dbListTables(con)
dbExistsTable(con, "mtcars")
dbDisconnect(con)
之后x <- dbWriteTable(con, "mtcars", mtcars, temporary = FALSE)
x = TRUE
以下之后dbReadTable(con, "mtcars")
输出为:
row_names mpg cyl disp hp drat wt qsec vs am gear carb
1 Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
之后x2 <- dbWriteTable(con, "mtcars", mtcars[2:3, ], append=TRUE, temporary = FALSE)
x2 = TRUE
以下之后dbReadTable(con, "mtcars")
输出为:
row_names mpg cyl disp hp drat wt qsec vs am gear carb
1 Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
2 Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
问题似乎很基本,我已经卸载并重新安装了R,RStudio和DBI,odbc以及我认为可能依赖于这些的任何其他软件包,但我没有成功。所有软件包都是最新的。
R版本3.6.3(2020-02-29)
MySQL Workbench 8.0版本8.0.19
[MySQL Workbench 8.0版本8.0.19 Build 15713499 CE(64位)社区
Windows 10 Pro 64位版本:18362.720
[Intel(R)Core(TM)i7-7700 CPU @ 3.60GHz
系统内存16GB
任何建议将不胜感激。
@@ Brian非常感谢您的建议。花了一段时间使RMariaDB与MySQL通讯,而没有出现caching_sha2_password错误,但是RMariaDB终于能够连接,并且dbWriteTable成功地将完整的data.frames写入MySQL。看来问题一定是odbc。