2014-03-04 69 views
0

使用Python-2.7.6和軟件包「pymysql」和「MySQL-python」使用「的easy_install - 2.7」 從Python腳本,我試圖讓遠程MySQL服務器的連接安裝(客戶端和MySQL服務器都在同一個子網)腳本pymysql:2003,「無法連接到%r(%s)上的MySQL服務器」%(self.host,e))

編譯腳本之後
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服務器。 此外,我驗證了加入MySQL和HTTP端口,iptables的服務,通過「Olaf Erlandsen」中建議的類似MySQLdb Issue

任何人都可以建議或幫助解決這個問題?

+0

是'10.0.xx.xx'實際的IP您正在使用? –

+0

你是通過端口作爲一個字符串或int? – sberry

+0

@ThomasOrozco不,我正在使用實際IP。 – Ravi

回答

3

我猜的錯誤實際上來自該行:

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

如果您在港傳遞的海峽,而不是作爲一個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 
+0

是的,這是真的!它實際上是由於端口引起的錯誤。非常感謝,這將需要很長時間才能找到我:) – Ravi

相關問題