Golang PostgreSQL错误:“getaddrinfow:找不到指定的类,”

pdkcd3nj  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(253)

我在使用Go和在我的PostgreSQL数据库上执行标准操作时遇到了问题。
我第一次开始使用GORM编码,在连接时收到以下错误消息:
dial tcp:lookup 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服务正在运行,并且数据库存在。

daupos2t

daupos2t1#

在写这个问题的时候,我再次检查了我的连接字符串/ env变量。
我意识到前一天我有一个愚蠢的复制/粘贴错误,我没有验证:
连接字符串:host=127.0.0.1 port=5432 port=new_database user=db_user password=XXXXXX
如您所见,还有一个额外的port变量,它应该是dbname。解决这个问题后,一切都按预期工作。
连接字符串:host=127.0.0.1 port=5432 dbname=new_database user=db_user password=XXXXXX

**TLDR:**在收到此(隐藏)错误时,请始终重新验证您的每一条连接信息!

相关问题