Mysql sqlx写入:断开的管道
我试图将一个巨大的文本更新到一个MariaDB表中,但不断出现Mysql sqlx写入:断开的管道,mysql,sql,go,mariadb,Mysql,Sql,Go,Mariadb,我试图将一个巨大的文本更新到一个MariaDB表中,但不断出现管道破裂错误。该列具有longtext数据类型,从我的日志来看,数据的大小似乎为~1374069字节 我已尝试将MaxConnLife更新为几个不同的值,例如MariaDB设置为28800->db.SetConnMaxLifetime(14400) 这就是我的DB conn的样子 loggerAdapter := zerologadapter.New(zerolog.New(os.Stdout)) db := sqld
管道破裂
错误。该列具有longtext
数据类型,从我的日志来看,数据的大小似乎为~1374069字节
我已尝试将MaxConnLife
更新为几个不同的值,例如MariaDB设置为28800
->db.SetConnMaxLifetime(14400)
这就是我的DB conn的样子
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
你知道我怎么解决这个问题吗?还是我应该想另一个解决办法?是否可能将此文本存储到S3而不是SQL
我做了一些研究,但没有一个有用。我找到的一些东西
允许的最大数据包
回答了我的问题
参考资料:增加
max\u allowed\u数据包
回答了我的问题
参考:查找驱动程序或服务器上的内存限制。这看起来不像是超时问题。增加最大允许数据包似乎可以解决我的问题。我刚刚在我的本地服务器上试用过,它成功了,明天将在我们的远程服务器上试用。@ET2019太好了。您应该将此作为您自己的问题的答案写入
:-)
查找驱动程序或服务器上的内存限制。这看起来不像是超时问题。增加最大允许数据包似乎可以解决我的问题。我刚刚在我的本地服务器上试用过,它成功了,明天将在我们的远程服务器上试用。@ET2019太好了。您应该将此作为您自己的问题回答:-)