Вот так запрос к БД работает нормально:
import (
_ "github.com/go-sql-driver/mysql"
)
func DBRout() {
// Пул подключений.
db, err_DB := sql.Open("mysql", ConnectDB)
if err_DB != nil {
fmt.Println("ERROR creating database connection pool:", err_DB)
}
defer db.Close()
db_ss.SetMaxOpenConns(25)
db_ss.SetMaxIdleConns(2)
db_ss.SetConnMaxLifetime(time.Minute)
// Запрос.
var err_DBQuery = db.QueryRow("SELECT COUNT(*) FROM `TabTab` WHERE `Col_User` = ? AND ColumnID = ?, 3, UName).Scan(&row_search)
if err_DBQuery != nil {
fmt.Println("Query error:", err_DBQuery)
return
}
}
func main() {
var mux = http.NewServeMux()
mux.HandleFunc("/routDB/", DBRout)
var serv = &http.Server {
...параметры...
}
log.Fatal(serv.ListenAndServeTLS(TLScert, TLSkey))
}
А когда выношу пул соединений на уровень файла - паникует.
import (
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func DBRout() {
// Запрос.
var err_DBQuery = db.QueryRow("SELECT COUNT(*) FROM `TabTab` WHERE `Col_User` = ? AND ColumnID = ?, 3, UName).Scan(&row_search)
if err_DBQuery != nil {
fmt.Println("Query error:", err_DBQuery)
return
}
}
func main() {
// Пул подключений.
db, err_DB := sql.Open("mysql", ConnectDB)
if err_DB != nil {
fmt.Println("ERROR creating database connection pool:", err_DB)
}
defer db.Close()
db_ss.SetMaxOpenConns(25)
db_ss.SetMaxIdleConns(2)
db_ss.SetConnMaxLifetime(time.Minute)
var mux = http.NewServeMux()
mux.HandleFunc("/routDB/", DBRout)
var serv = &http.Server {
...параметры...
}
log.Fatal(serv.ListenAndServeTLS(TLScert, TLSkey))
}
Выводит в консоль:
2021/12/27 04:02:13 http2: panic serving 127.0.0.1:59951: runtime error: invalid memory address or nil pointer dereference
goroutine 136 [running]: ...
Ну не фигня ли?? )