php小编百草在使用golang连接到rethinkDB时遇到了问题。无法连接到rethinkDB服务器的错误提示让他困惑不已。针对这个问题,他进行了一系列的排查和调试,并最终找到了解决方案。在这篇文章中,我们将一起探讨从golang连接到rethinkDB时可能出现的问题以及解决方法。,我使用 rethinkdb 运行 docker 容器,然后运行 go file 以连接到数据库,但连接时出现错误。,大家好。我需要 rethinkdb 方面的帮助,我运行了 docker 容器:,然后访问http://localhost:8100并且有rethinkdb的主页,所以everythink都很好。但是当我尝试从 golang 连接到数据库时,我遇到了一些错误:,运行 go run main.go
后出现此错误:,感谢发生这种情况的原因是端口不正确(28015),但是如果我更改它,除了端口 = 8100 之外,我还会遇到同样的问题。如果我输入 8100 而不是 28015 并出现此错误:,可能有人知道如何解决这个问题), -p 8100:8080
将容器中的端口 8080
映射到主机上的端口 8100
。您没有映射任何其他端口,因此,当您尝试访问 8100
以外的任何端口(例如 127.0.0.1:28015
)时,您的请求将无法到达容器。主机上的其他东西可能正在侦听该端口,或者可能没有任何侦听。,您提到您可以访问 上的管理界面http://localhost:8100
;如果您检查日志,您会注意到类似以下内容:,因此服务器正在侦听多个端口上的连接。端口 8080
(映射到 8100
)是管理 http 接口,28015
用于驱动程序连接(这在 文档)。您的代码正在尝试连接到端口 28015
(这是正确的),但您没有映射该端口,因此在主机上无法访问它;解决这个问题:,这会将容器中的端口 28015
映射到主机上的端口 28015
(如果需要,您可以使用不同的主机端口;只需记住更新代码)。我们现在可以成功连接如下内容:,