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 关注
- 181 浏览
添加回答
举报