반응형
문을 실행할 수 없습니다. 쿼리 중 MySQL 서버에 대한 연결이 끊어졌습니다.
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
RMySQL 패키지를 최신 RMariaDB 패키지로 교체합니다.
install.packages("RMariaDB")
그러면 2000 행이 넘는 테이블을 다시 전송할 수 있습니다.
con <- RMariaDB::dbConnect(RMariaDB::MariaDB(), dbname="test")
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)
RMariaDB::dbWriteTable(con, "cntxt", cntxt, row.names = FALSE, overwrite = TRUE)
언급URL : https://stackoverflow.com/questions/50567726/could-not-run-statement-lost-connection-to-mysql-server-during-query
반응형
'source' 카테고리의 다른 글
C/C++에서 포인터 변수를 올바르게 선언하는 방법 (0) | 2022.09.06 |
---|---|
Vue.JS 커스텀 라디오 버튼 컴포넌트를 두 번 클릭해야 함 (0) | 2022.09.04 |
VS Code가 긴 HTML 행을 여러 줄로 분할하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.09.04 |
파일을 한 줄 한 줄 목록으로 읽는 방법 (0) | 2022.09.04 |
2개의 빈을 자동 배선하여 동일한 인터페이스를 구현합니다.기본 빈을 autowire로 설정하려면 어떻게 해야 합니다. (0) | 2022.09.04 |