Передавая фрейм данных R в таблицу базы данных MySQL (MariaDB), я получаю следующую ошибку: Lost connection to MySQL server during query
Пример данных можно загрузить в R с помощью этой команды
cntxt <- read.delim("http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&file=comext%2FCOMEXT_METADATA%2FCLASSIFICATIONS_AND_RELATIONS%2FENGLISH%2FCN.txt", header = FALSE, quote = "", stringsAsFactors = FALSE)
Я использую пакет RMySQL
для передачи фрейма данных в базу данных:
con <- RMySQL::dbConnect(RMySQL::MySQL(), dbname = "test")
RMySQL::dbWriteTable(con, "cntxt", cntxt, row.names = FALSE, overwrite = TRUE)
Операция записи в базу данных отлично работает на моем ноутбуке для таблиц любого размера.Но на сервере он возвращает ошибку.Ошибка появляется только для достаточно больших таблиц (более 1000 строк):
dbWriteTable()
успешно для 1000 строк данных
RMySQL::dbWriteTable(con, "cntxt", head(cntxt,1000), row.names = FALSE, overwrite = TRUE)
# [1] TRUE
dbWriteTable()
не удается для 2000 строк данных
RMySQL::dbWriteTable(con, "cntxt", head(cntxt,2000), row.names = FALSE, overwrite = TRUE)
# Error in .local(conn, statement, ...) :
# could not run statement: Lost connection to MySQL server during query
Исходя из связанных вопросов , я проверил значение max_allowed_packet:
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
| max_allowed_packet | 16777216 |
16Mb должно быть более чем достаточно для 2000 строк данных.Откуда исходит ошибка?В mysql ничего не видно в журнале ошибок /var/log/mysql/error.log
.
Версия сервера: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1