반응형
sqlx 쓰기: 파이프 손상
대용량 텍스트를 MariaDB 테이블로 업데이트하려고 하는데 계속 표시됩니다.broken pipe
오류열에 다음이 있습니다.longtext
데이터 유형 및 로그를 보면 데이터의 크기는 다음과 같습니다.~1374069 bytes
.
업데이트를 시도했습니다.MaxConnLife
나의 절반과 같은 몇 가지 다른 가치들로.wait_timeout
다음으로 설정된 MariaDB에서28800
->db.SetConnMaxLifetime(14400)
이것이 내 DB 연결의 모습입니다.
loggerAdapter := zerologadapter.New(zerolog.New(os.Stdout))
db := sqldblogger.OpenDriver(dsn, &mysql.MySQLDriver{}, loggerAdapter /*, using_default_options*/) // db is STILL *sql.DB
db.SetConnMaxLifetime(14400)
sqlxdb := sqlx.NewDb(db, "MySQL")
오류 로그
{"level":"info","conn_id":"66g4YSswso2QqsQE","duration":0.289406,"query":"UPDATE campaigns SET vendor_products=? WHERE id=?","stmt_id":"Mygo_MuAaIuGYwe2","time":1605747034,"message":"PrepareContext"}
[mysql] 2020/11/19 00:50:34 packets.go:145: write tcp IP->IP: write: broken pipe
{"level":"ERROR","args":["[{\"Id\":1,\"UserId\":1,\"PlanId\":1,\"GroupI (1374069 bytes truncated)",130],"conn_id":"66g4YSswso2QqsQE","duration":2.138179,"ERROR":"invalid connection","query":"UPDATE campaigns SET vendor_products=? WHERE id=?","stmt_id":"Mygo_MuAaIuGYwe2","time":1605747034,"message":"StmtExecContext"}
{"level":"ERROR","conn_id":"66g4YSswso2QqsQE","duration":0.00295,"ERROR":"driver: bad connection","query":"UPDATE campaigns SET vendor_products=? WHERE id=?","stmt_id":"Mygo_MuAaIuGYwe2","time":1605747034,"message":"StmtClose"}
사용 중인 버전
github.com/go-sql-driver/mysql v1.4.1
go 1.13
github.com/jmoiron/sqlx v0.0.0-20181024163419-82935fac6c1a
내가 이걸 어떻게 해결할 수 있는지 알아요?아니면 다른 해결책을 생각해야 할까요?이 텍스트를 SQL 대신 S3에 저장하는 것처럼?
제가 몇 가지 조사를 해봤지만 아무 것도 도움이 되지 않았습니다.내가 찾은 물건들 중 일부.
- https://github.com/go-sql-driver/mysql/issues/446
- mysql 연결 제한 시간에 대한 가장 좋은 해결책은 무엇입니까?
- https://github.com/go-sql-driver/mysql/issues/529
- https://github.com/go-sql-driver/mysql/issues/116
증가하는 것.max_allowed_packet
제 질문에 대한 답입니다.
참조: https://mariadb.com/docs/reference/mdb/system-variables/max_allowed_packet/
언급URL : https://stackoverflow.com/questions/64904095/sqlx-write-broken-pipe
반응형
'source' 카테고리의 다른 글
Android 응용 프로그램에서 활동 간에 데이터를 전달하려면 어떻게 해야 합니까? (0) | 2023.06.18 |
---|---|
예외 처리 블록에서 pl/sql 예외를 다시 발생시키는 방법은 무엇입니까? (0) | 2023.06.18 |
왜 제가 "반드시 무시당해야 할 무효 가치"를 얻게 되는 걸까요? (0) | 2023.06.18 |
배열의 일부 요소만 일부 값으로 초기화하는 방법은 무엇입니까? (0) | 2023.06.18 |
마이그레이션을 통해 열에 기본값 추가 (0) | 2023.06.18 |