### Issue description When a query is cancelled, a single subsequent unrelated query returns `invalid connection` instead of running normally. ### Example code ```go package main import ( "context" "database/sql" "log" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/some_db") if err != nil { log.Fatal(err) } for { ctx, cancel := context.WithCancel(context.Background()) go cancel() row := db.QueryRowContext(ctx, `SELECT 1`) var a int if err := row.Scan(&a); err != nil && err != context.Canceled { log.Fatal(err) } } } ``` ### Error log ``` [mysql] 2018/07/17 17:14:03 connection.go:372: invalid connection ... ``` ### Configuration *Driver version (or git SHA): 749ddf1598b47e3cd909414bda735fe790ef3d30 (latest master at the time of writing) *Go version:go version go1.10.3 darwin/amd64 *Server version: Percona 5.7 *Server OS: Debian Jessie x64