登录
首页 >  Golang >  Go问答

Golang连接PostgreSQL时出现“getaddrinfow: No such host is known.”错误

来源:stackoverflow

时间:2024-03-12 08:33:28 154浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《Golang连接PostgreSQL时出现“getaddrinfow: No such host is known.”错误》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我在使用 go 和在 postgresql 数据库上执行标准操作时遇到问题。

我首先开始使用 gorm 进行编码,并在连接时收到以下错误消息:

拨号 tcp: 查找 tcp/fullstack_api: getaddrinfow: 未找到指定的类。

使用 _ "github.com/lib/pq" postgresql 方言切换到标准 "database/sql" 包后,连接不再抛出此错误。然而,现在当我尝试对连接的数据库执行任何查询时,我会收到此错误,我认为 gorm 最初是这样做的。

以下代码在我的系统上导致此错误:

// Connect initiates a DB connection.
func (dbConn *PostgresConnection) Connect() error {
    handle, connErr := sql.Open("postgres", dbConn.getConnectionString())
    if connErr != nil { // Does NOT cause an error
        return connErr 
    }
    if pingErr := handle.Ping(); pingErr != nil { // Causes the above error
        return pingErr
    }
    dbConn.handle = handle
    return nil
}

我已检查 postgresql 服务是否正在运行,并且数据库存在。


解决方案


在写这个问题时,我再次检查了我的连接字符串/环境变量。

我意识到我在前一天发生了一个愚蠢的复制/粘贴错误,因为我没有验证:

连接字符串:host=127.0.0.1 port=5432 port=new_database user=db_user 密码=XXXXXX

正如您所看到的,还有一个额外的 port 变量,它应该是 dbname。解决此问题后,一切都按预期进行。

连接字符串:host=127.0.0.1 port=5432 dbname=new_database user=db_user 密码=XXXXXX

TLDR:收到此(神秘的)错误时,请务必重新验证每条连接信息!

今天关于《Golang连接PostgreSQL时出现“getaddrinfow: No such host is known.”错误》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>