Golang安装godror时出现net/http TLS握手超时错误怎么解决
Golang安装godror时出现net/http TLS握手超时错误怎么解决 我是Go语言的新手。我想用它来编写监控Oracle数据库的脚本。因此,我需要能够与Oracle数据库进行原生通信。我打算为此使用godror。
我尝试在Redhat 7.9 Amazon EC2实例上安装godror。我能够使用yum install安装库,但似乎无法成功安装godror。我甚至直接从GitHub下载了该软件包,但不知道如何从磁盘安装它。
任何帮助都将不胜感激。
谢谢!
[root@zusprlfftorp002 godror-main]# go get -v github.com/godror
go: github.com/go-logfmt/logfmt@v0.5.1: Get "https://proxy.golang.org/github.com/go-logfmt/logfmt/@v/v0.5.1.mod": net/http: TLS handshake timeout
[root@zusprlfftorp002 godror-main]# go get -v github.com/godror@latest
go: github.com/go-logfmt/logfmt@v0.5.1: Get "https://proxy.golang.org/github.com/go-logfmt/logfmt/@v/v0.5.1.mod": net/http: TLS handshake timeout
[root@zusprlfftorp002 godror-main]# go get -v github.com/godror@stable
go: github.com/go-logfmt/logfmt@v0.5.1: Get "https://proxy.golang.org/github.com/go-logfmt/logfmt/@v/v0.5.1.mod": EOF
更多关于Golang安装godror时出现net/http TLS握手超时错误怎么解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html
看起来你没有使用完整的URL godror | GO DRiver for ORacle DB
更多关于Golang安装godror时出现net/http TLS握手超时错误怎么解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
如果你使用 curl 或 wget 尝试获取 https://github.com/godror/godror,它能正常工作吗,还是你也会遇到错误?
github.com/godror/godror
我可以用 wget 从那个网站下载文件。我注意到很多网站都在讨论 Golang 被用于恶意软件,我在想 Crowdstrike 是否在阻止我安装 Golang 模块。
我运行了你链接中让我执行的命令,但没有得到帮助。你知道如何基于我下载到磁盘的tar文件进行安装吗?
root@zusprlfftorp002:~/golang_godror/delme > go get github.com/godror/godror
go get: module github.com/godror/godror: Get "https://proxy.golang.org/github.com/godror/godror/@v/list": net/http: TLS handshake timeout
这个错误是由于网络连接问题导致无法从Go模块代理下载依赖。以下是几种解决方案:
1. 设置GOPROXY使用国内镜像(推荐)
# 设置阿里云代理
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
# 或者使用七牛云代理
go env -w GOPROXY=https://goproxy.cn,direct
# 然后重试安装
go get -v github.com/godror/godror
2. 禁用代理直接连接
# 关闭代理,直接从源码仓库下载
go env -w GOPROXY=direct
# 设置不验证TLS证书(仅测试环境使用)
go env -w GOSUMDB=off
# 重试安装
go get -v github.com/godror/godror
3. 设置超时时间并重试
# 设置更长的超时时间
export GODEBUG=http2client=0 # 禁用HTTP/2
export HTTP_TIMEOUT=60
# 使用go get时指定超时
go get -v -timeout 60s github.com/godror/godror
4. 手动从磁盘安装(你已经下载了源码)
如果你已经下载了godror源码到本地:
# 进入源码目录
cd /path/to/godror-main
# 使用本地路径安装
go mod init your-project
go mod edit -replace github.com/godror/godror=./godror-main
# 或者直接构建
cd godror-main
go build
go install
5. 完整的环境配置示例
# 设置Go环境变量
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn
# 清理缓存
go clean -modcache
# 安装godror
go get github.com/godror/godror@latest
# 验证安装
go list -m github.com/godror/godror
6. 使用go mod创建项目
# 创建项目目录
mkdir oracle-monitor
cd oracle-monitor
# 初始化模块
go mod init oracle-monitor
# 创建main.go文件
cat > main.go << 'EOF'
package main
import (
"database/sql"
"fmt"
_ "github.com/godror/godror"
)
func main() {
fmt.Println("Testing godror installation")
}
EOF
# 下载依赖
go mod tidy
对于Redhat 7.9,还需要确保系统时间正确,TLS证书完整:
# 更新系统时间
sudo yum install ntp -y
sudo ntpdate pool.ntp.org
# 更新CA证书
sudo yum update ca-certificates -y
选择适合你网络环境的方法,通常设置国内代理是最有效的解决方案。

