【问题标题】:pymysql: 2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e))pymysql: 2003, "无法连接到 %r (%s) 上的 MySQL 服务器" % (self.host, e))
【发布时间】:2014-03-04 06:08:42
【问题描述】:

使用 Python-2.7.6 并使用“easy_install-2.7”安装包“pymysql”和“MySQL-python” 我正在尝试从 python 脚本连接到远程 MySQL 服务器(客户端和 mysql 服务器都在同一个子网中)

脚本:

cluster_inbound_ip="10.0.xx.xx"
conn = pymysql.connect(host=cluster_inbound_ip, port=cluster_port, user=db_root_user, passwd=db_root_pass, db = db_name)

编译脚本后出错

  File "/root/test_case.py", line 41, in setup_module
    conn = pymysql.connect(host=cluster_inbound_ip, port=cluster_port, user=db_root_user, passwd=db_root_pass, db = db_name)
  File "/usr/local/lib/python2.7/site-packages/PyMySQL-0.6.1-py2.7.egg/pymysql/__init__.py", line 88, in Connect
    return Connection(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/PyMySQL-0.6.1-py2.7.egg/pymysql/connections.py", line 634, in __init__
    self._connect()
  File "/usr/local/lib/python2.7/site-packages/PyMySQL-0.6.1-py2.7.egg/pymysql/connections.py", line 818, in _connect
    2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e))
OperationalError: (2003, "Can't connect to MySQL server on '10.0.xx.xx' (%d format: a number is required, not str)")

我能够 ping 以及能够从我的客户端从命令行连接到 MySQL 服务器。 此外,我验证了在 iptables 服务中添加 MySQL 和 HTTP 端口,如“Olaf Erlandsen”所建议的类似MySQLdb Issue

谁能建议或帮助解决这个问题?

【问题讨论】:

  • 10.0.xx.xx 是您使用的实际 IP 吗?
  • 你是把端口作为字符串还是整数传递?
  • @ThomasOrozco 不,我使用的是实际 IP。

标签: python mysql python-2.7 mysql-python


【解决方案1】:

我猜错误实际上来自这一行:

self.host_info = "socket %s:%d" % (self.host, self.port)

如果您将端口作为 str 而不是 int 传递,那么这就是您所期望的。

例如:

>>> print "socket %s:%d" % ("localhost", 8000)
socket localhost:8000
>>> print "socket %s:%d" % ("localhost", '8000')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not str

【讨论】:

  • 是的,这是真的!它实际上是由于端口而引发的错误。非常感谢,我需要很长时间才能弄清楚:)
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 2014-08-22
  • 2014-11-08
  • 1970-01-01
  • 2018-12-12
  • 2013-01-23
  • 1970-01-01
相关资源
最近更新 更多