从容器连接到远程数据库服务器时出错

我在mesos中部署了一项服务,该服务查询远程数据库服务器。 我使用了 github.com/go-sql-driver/mysql </ code> </ a>从我的Go代码中查询数据库。 大约一个星期工作正常。 但是今天我得到了这个错误: driver:连接断开</ code> </ p>

所以我进入了运行我的服务的docker容器并输入了命令行:</ p> \ n

  mysql -uxxx -hx.xxx -Pxxx -Dxxx -pxxx 
</ code> </ pre>

这是响应:</ p>
\ n

 错误2013(HY000):在“读取初始通信数据包”时与MySQL服务器的连接丢失,系统错误:0 
</ code> </ pre>

/etc/mysql/my.cnf文件的内容:</ p>

  [mysql] 
no-auto-rehash#更快地启动mysql,但没有制表符完成
</ code> </ pre>

这是什么错误? 我该如何解决呢?</ p>

编辑:当我从本地计算机运行相同的命令时,它运行正常。 我可以从PC的命令行查询数据库。</ p>
</ div>

展开原文

原文

I have a service deployed in mesos, which queries a remote database server. I used github.com/go-sql-driver/mysql to query the database from my Go code. It was working fine for about a week. But today I got this error: driver: bad connection

So I entered the docker container where my service runs and type in command line:

mysql -uxxx -hx.x.x.x -Pxxx -Dxxx -pxxx

Here's the response:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

This is the content of /etc/mysql/my.cnf file:

[mysql]
no-auto-rehash  # Faster start of mysql but no tab completition

What can be the error here? And how can I solve this?

Edit: When I run the same command from my local machine it works fine. I can query the database from the command line of my pc.

du31992
du31992 我建议您做下一个实验来缩小问题的范围:1)从容器访问另一个在相同网络名称空间中的mysql容器2)从容器访问mysql容器,在docker主机上3)从容器访问另一个外部mysql服务。如果不做实验,我想这类问题真的很不容易找到根本原因...
大约一年之前 回复
doutan3371
doutan3371 编辑了问题。我可以从本地计算机访问远程数据库。仍然是防火墙问题吗?
大约一年之前 回复
douweng9427
douweng9427 上一次我读取初始通信数据包时,这是数据库服务器上的防火墙问题,当时我的公司IT启用了硬件防火墙。
大约一年之前 回复
duanjue6575
duanjue6575 集装箱日志怎么说?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐