gpt4 book ai didi

mysql - Golang Mysql connectex 套接字 block

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:17 25 4
gpt4 key购买 nike

我使用“go-sql-driver/mysql”驱动程序。我有一个具有一些依赖项的产品表。所以我选择产品并获取将在子查询中创建笛卡尔产品的依赖项。通常有 200 个产品限制以获得更好的性能,但在极少数情况下,该限制将被删除或提高到比方说 3000-5000 然后我会收到以下错误:

dial tcp 127.0.0.1:3306: connectex: Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.

这基本上意味着:

connectex: Use every Socketaddress only once.

这是从我的代码中截取的,基本上我所有的查询函数都是这样构建的:

mysql := this.DBController.Connect()
defer mysql.Close()
.
.
.
for rows.Next() {
err := rows.Scan(&x, &y, &z)
if err != nil {
log.Println("DBFetchMachines: Scan Error")
log.Println(err)
}
product.PurchasePrice = this.priceR.DBFetchPurchasePriceByProductID(product.ID)
product.SellingPrice = this.priceR.DBFetchSellingPriceByProductID(product.ID)
product.DealerContact = this.contactR.DBGetBasicContact(product.DealerContact.ID)
.
.
.
}

当我只查询 200-1000 行时没有问题。这可能是操作系统相关的问题吗?我使用 Win10 64Bit 作为我的开发机器。

最佳答案

作为评论中的reticentroot,我检查了alexedwards.net/blog/organising-database-access有关一些最佳实践示例。我选择了依赖注入(inject),它的效果非常好。

关于mysql - Golang Mysql connectex 套接字 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46361337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com