当我使用 VPN 连接到数据库(使用标准 go sql 库)并且 VPN 接口(interface)关闭时,当我尝试执行 SQL 查询时会有 75 秒的超时,无论接口(interface)是否同时打开。我想将此超时减少到某个合理的时间,这样我的应用程序就不会在这种情况下被卡住 75 秒。
db, err := sql.Open(driverName, dataSourceName)
是否可以通过 db
变量以某种方式设置它?
最佳答案
database/sql
包没有提供一种通用的方法来使对 database/sql.Open
的调用超时。但是,个别驱动程序通过 DSN (dataSourceName) 连接字符串提供此功能。
sql.Open("postgres", "user=user dbname=dbname connect_timeout=5")
https://github.com/go-sql-driver/mysql
sql.Open("mysql", "user:password@/dbname?timeout=5s")
https://github.com/denisenkom/go-mssqldb
sql.Open("sqlserver", "sqlserver://username:password@host/instance?dial+timeout=5")
等...
关于database - 在 Go 中为 SQL 连接设置 TCP 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527808/