Отидете на database/sql
не ви пречи да създадете безкраен брой връзки към базата данни. Ако има неактивна връзка в пула, тя ще бъде използвана, в противен случай се създава нова връзка.
Така че при натоварване вашите манипулатори на заявки sql.DB вероятно не намират неактивни връзки и така се създава нова връзка, когато е необходимо. Това води до малко - повторно използване на неактивни връзки, когато е възможно и създаване на нови, когато е необходимо -, в крайна сметка достигайки максималните връзки за Db. И, за съжаление, в Go 1.1 няма удобен начин (напр. SetMaxOpenConns ), за да ограничите отворените връзки.
Надстройте до по-нова версия на Golang. В Go 1.2+ получавате SetMaxOpenConns . И разгледайте MySql документите за начална настройка и след това настройте.
db.SetMaxOpenConns(100) //tune this
Ако трябва да използвате Go 1.1, ще трябва да гарантирате в кода си, че *sql.DB
се използва само от N клиенти наведнъж.