我在使用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服务正在运行,并且数据库存在。
1条答案
按热度按时间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:**在收到此(隐藏)错误时,请始终重新验证您的每一条连接信息!