![](/img/trans.png)
[英]pymysql - google cloud - OperationalError: (2003, "Can't connect to MySQL server on
[英]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.