drl959975 2014-03-05 10:45
浏览 40
已采纳

mysql错误在单独的软件包中使用go-sql-driver拒绝用户访问

I am getting the following error when using with go-sql-driver with mysql and gorp when using in a separate package called dbutil Error 1045: Access denied for user 'root'@'localhost' (using password: NO)

package dbutil

import (
    "cropz/structs"
    "database/sql"
    "github.com/coopernurse/gorp"
    _ "github.com/go-sql-driver/mysql"
    "log"
)

func InitDB() *gorp.DbMap {
    // connect to db
    db, err := sql.Open("mysql", "root:pass@tcp(127.0.0.1:3306)/jsl")
    defer db.Close()

    err = db.Ping()
    checkErr(err, "Ping failed")

    // construct a gorp DbMap
    dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{"InnoDB", "UTF8"}}

    return dbmap
}


package main

func main() {

    dbmap := dbutil.InitDB()
    err := dbmap.Db.Ping()
    checkErr(err, "Ping failed")
}

If I have the initDB() function in the main package, it works fine.

This happens only if used with martini framework and dbutil in separate package. With martini framework and in the same package it still works.

I am using windows, MySQL-5.0.22. Please help.

thanks, Krishna

  • 写回答

2条回答 默认 最新

  • douzhu7507 2014-03-07 16:53
    关注

    I deleted the .a files generated in the pkg folder and then didn't get the access denied error.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?