簡體   English   中英

pymysql:2003,“無法連接到%r(%s)上的MySQL服務器”%(self.host,e))

[英]pymysql: 2003, “Can't connect to MySQL server on %r (%s)” % (self.host, e))

使用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服務器。 另外,我驗證了“ Olaf Erlandsen ”對類似的MySQLdb問題建議在iptables服務中添加MySQL和HTTP端口。

誰能建議或幫助解決此問題?

我猜想錯誤實際上來自此行:

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

如果將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM