golang内部自带了连接池功能,所以只需要全局创建单例的db就可以了 创建连接池 创建db后并不需要自己去使用db.Close()去关闭,虽然提供了这样关闭方法但是完全不需要使用。 只要像下面这样创建连接就可以直接使用,如果非要使用关闭,那么可以在信号signal 部分去关闭系统的资源。 var DB *sql.DB func init() { db, _ = sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test?charset=utf8") db.SetMaxOpenConns(2000) db.SetMaxIdleConns(1000) db.Ping() } SetMaxOpenConns用于设置最大打开的连接数,默认值为0表示不限制。 SetMaxIdleConns用于设置闲置的连接数。 参考 golang go-sql-drive mysql连接池的实现 来源: oschina 链接: https://my.oschina.net/u/1992048/blog/778647