gpt4 book ai didi

mysql - Ubuntu升级后Golang MySQL连接超时

转载 作者:数据小太阳 更新时间:2023-10-29 03:21:54 26 4
gpt4 key购买 nike

我在使用 golang 项目从 MySQL 数据库获取数据时遇到问题。在我从 Ubuntu 16.04 升级到 Ubuntu 18.04.01 之前,这个项目一直没有问题。应用程序现在在连接到数据库时超时。

我的第一个想法是在 16.04 到 18.04 的升级过程中出现了问题。为了证明这一点,我启动了一个运行 16.04 的新虚拟机,执行了“do-release-upgrade”并将其升级到 18.04。但是在这个 VM 上,我的应用程序运行良好,没有问题。

我不知道从这里到哪里去解决正在发生的问题。下面是两种配置的总结。 VM(工作)和服务器(不工作)如下;

Ubuntu 18.04.01 LTS x86_64
内核 4.15.0-34-generic
去 1.11
MySQL 5.7.23-0ubuntu

这是我的测试程序:
包主

import (
"fmt"
"database/sql"
_"github.com/go-sql-driver/mysql"
)

func main() {
fmt.Printf("Connecting to db\n")
db,err := sql.Open("mysql","Test:@/Test")
if err != nil {
panic(err)
}
fmt.Printf("Trying query Row\n")
var Data int
err = db.QueryRow("SELECT Data FROM Test WHERE ID=2").Scan(&Data)
fmt.Printf("After Query\n")
if err != nil {
panic(err)
}
fmt.Printf("Got Data=%d\n",Data)
db.Close()
}

在 VM 上,程序可以毫无问题地执行并返回一些有效数据。服务器在 QueryRow 行挂起。 2 分钟后我得到了返回

$ time ./test
Connecting to db
Trying query Row
After Query
panic: dial tcp 127.0.0.1:3306: connect: connection timed out

goroutine 1 [running]:
main.main()
/home/daedalus/test/sqltest.go:20 +0x263

real 2m10.874s
user 0m0.001s
sys 0m0.009s

我意识到问题是程序无法连接到数据库,或者数据库没有响应,但我不明白为什么。 mysql 的日志文件 syslog 中也没有任何记录。我可以看到 MySQL 没有任何问题。我可以作为测试用户连接并运行查询就好了。

我不确定如何继续追踪服务器出现故障但虚拟机在两种配置相同时正常工作的原因。

如有任何帮助,我们将不胜感激。

最佳答案

我可以考虑两种可能性:

  • MySQL 服务器缺少用户“Test@127.0.0.1”但有用户“Test@localhost”
  • 服务器防火墙阻止访问 127.0.0.1 上的端口 3306

关于mysql - Ubuntu升级后Golang MySQL连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52506911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com