Python mysql.connector连接DatabaseError - 从远程vm

时间:2015-12-01 19:00:18

标签: python mysql azure virtual-machine

我正在尝试从虚拟机(在Azure上运行的Ubuntu)连接到远程MySQL数据库。

当我通过命令行从我的电脑访问数据库时,我输入:

mysql -u username -h www.foobar.nyc -p

提示我输入密码。当我输入密码时,它会成功登录到远程数据库。

现在,当我执行与上面相同的操作时,而是从我有ssh进入的远程虚拟机,进入我的pw后返回以下错误。

ERROR 1129 (HY000): Host 'xxx.xx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

Google搜索此错误会将我带到:http://dev.mysql.com/doc/refman/5.7/en/blocked-host.html

我想了解为什么我会遇到这么多连接错误 - 这是正常的吗?是否有一个可能与Azure的设置,我需要调查?我知道Azure有端点管理器。使用Python mysql库时,它会读取File "/site-packages/mysql/connector/connection.py", line 418, in _open_connection

上发生的self._do_handshake()错误

我希望从这个问题中获得什么:

  1. 了解为什么会发生“很多”错误 - 导致这种情况的原因是什么,并且正常收到如此大量的错误(正如我链接到的MySQL文档中的一些评论似乎暗示的那样)。

  2. 了解在ssh到远程基于Azure的虚拟机时,使命令行中的本地工作能够从本地工作但不能从命令行工作的差异。

  3. 感谢。

1 个答案:

答案 0 :(得分:1)

  

1.理解为什么"很多"错误正在发生 - 导致这种情况的原因是并且正在接收如此大量的错误(正如我链接到的MySQL文档中的一些注释似乎暗示的那样)。

根据我的经验,您可以查看mysql错误日志,启用错误日志的详细信息是@ How to see log files in MySQL?

  

2.了解在ssh到远程基于Azure的虚拟机时,允许相同操作在命令行中从本地工作但不能从命令行工作的差异。

根据您提供的最新评论,新创建的虚拟机没有遇到同样的问题,可能不是与天蓝色平台相关的问题。