You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go数据库连接器异常:PostgreSQL驱动编译报未知mysql驱动错误

解决PostgreSQL驱动编译报错sql: unknown driver "mysql"的问题

这是个典型的驱动名称不匹配的坑!报错提示找不到mysql驱动,但你明明已经导入了PostgreSQL的驱动,核心问题出在你连接数据库时用的驱动名还是mysql,和当前导入的PostgreSQL驱动完全不对应。下面一步步帮你解决:

1. 匹配正确的驱动名称

不同PostgreSQL驱动对应不同的驱动名,你用的两个包分别对应:

  • 对于github.com/lib/pq:驱动名是postgres
  • 对于github.com/jbarham/gopgsqldriver:驱动名是gopgsql

给你一个lib/pq的正确代码示例:

import (
    "database/sql"
    _ "github.com/lib/pq"
)

func main() {
    // 重点:这里驱动名是"postgres",不是"mysql"!
    dsn := "user=your_username dbname=your_db password=your_pass host=localhost port=5432 sslmode=disable"
    db, err := sql.Open("postgres", dsn)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // 测试连接是否正常
    if err := db.Ping(); err != nil {
        panic(err)
    }
}

2. 确认依赖正确安装

虽然你已经执行了go get,但有时候模块依赖可能有缓存或者未正确关联,建议做这几步:

  • 确保项目已初始化Go模块:如果还没做,执行go mod init your_project_name(替换成你的项目名)
  • 重新拉取对应驱动:go get github.com/lib/pq(或者github.com/jbarham/gopgsqldriver)
  • 清理并同步依赖:go mod tidy

3. 检查代码残留

确认你的代码里没有残留之前用MySQL驱动时的连接逻辑——比如有没有其他地方还在调用sql.Open("mysql", ...),或者配置文件里还写着mysql驱动名。

如果做完这些还是有问题,可以检查下Go版本是否和驱动兼容,不过这种情况比较少见。

内容的提问来源于stack exchange,提问作者Lawrence V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:25:01