1 回答

TA貢獻2065條經驗 獲得超14個贊
您(可能)沒有告訴它使用 mysql 驅動程序;
db, err := sql.Open("mysql", connString)
這是我的一些示例代碼:
var query = "INSERT IGNORE INTO blah (`col1`, `col2`, `col3`) VALUES (?, ?, ?)"
r, err := db.Query(query, some_data_1, some_data_2, some_data_3)
// Failure when trying to store data
if err != nil {
msg := fmt.Sprintf("fail : %s", err.Error())
fmt.Println(msg)
return err
}
r.Close() // Always do this or you will leak connections
我創建了 MySQL 池(是的,它是一個池而不是一個連接):
import (
// mysql driver
_ "github.com/go-sql-driver/mysql"
"database/sql"
"fmt"
)
connString := fmt.Sprintf("%s:%s@(%s:%d)/%s?timeout=30s",
user,
password,
host,
port,
database,
)
db, err := sql.Open("mysql", connString)
if err != nil {
return nil, err
}
err = db.Ping() // test the pool connection(s)
if err != nil {
return nil, err
}
return db, nil // No error, return the pool connections
我也強烈建議您打印出數據庫連接過程和查詢過程中的任何錯誤。可能是您正在使用驅動程序,但您沒有權限,數據庫已關閉等。
- 1 回答
- 0 關注
- 201 瀏覽
添加回答
舉報