go 使用sql.open dsn传空不会报具体错误?

新手上路,请多包涵
package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main()  {
    _,err := sql.Open("mysql", "")

    fmt.Println(err)
}

go version go1.13.5 darwin/amd64
为什么这么明显的错误,但是代码执行,返回的错误为nil

<nil>
Process finished with exit code 0

阅读 1.7k
2 个回答

https://learnku.com/docs/go-database-sql/accessing/9476


sql.Open() 不会建立与数据库的任何连接,也不会验证驱动程序的连接参数。
而是它只准备数据库抽象以备后用。与基础数据存储区的第一个实际连接将延迟到第一次需要时建立。如果要立即检查数据库是否可用和可访问 (例如,检查是否可以建立网络连接并登录),请使用 db.Ping() 进行操作,并记录检查错误

看方法描述,这个方法不会验证dsn是否有效。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题