2011-02-02 26 views
7

Questo mi sta facendo impazzire.MySQL-python Impossibile connettersi al server

Ho Python 2.5 e MySQL-python-1.2.3 dal .exe disponibile here installato su Vista.

Ho effettuato le pagine .php nelle ultime settimane e sono collegato correttamente per poterle testare nel mio browser.

[email protected]_connect("localhost", "root", "mypassword") 

ho anche usato mysql riga di comando con

mysql.exe -uroot -pmypassword just fine. 

Tuttavia, quando si tenta di utilizzare MySQLdb con

conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "mypassword") 

ottengo

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") 

Ho controllato che MySQL è in esecuzione nei servizi. Ho controllato la mia configurazione di MySQL in my.ini e funziona su port = 3306. Ho anche disinstallato e reinstallato MySQL 5.1. Ho letto diverse pagine di problemi di connessione e risposte su Google, ma non ho ceduto nulla. Deve essere qualcosa di semplice che sto trascurando, ma qualcuno ha altre idee?

+0

Questo mi sta facendo impazzire troppo ... http://stackoverflow.com/search?q=cannot+connect+to+mysql – ajreal

+0

mente per controllare due volte la porta ??? è la porta predefinita 3306 o 10061? – ajreal

risposta

15

Non utilizzare la versione di Windows (tutta la mia esperienza rilevante è su Linux), ma sarei disposto a scommettere che funzionerà se si utilizza 127.0.0.1 al posto di localhost.

Modifica: - un po 'di spiegazione.

Innanzitutto, controllare le voci in mysql. Tabella user, per il campo host (sebbene, per impostazione predefinita, siano presenti tre voci per la radice che copre tutte le basi). Molto probabilmente, il tuo problema è causato dal fatto che il servizio MySQL è in ascolto su 127.0.0.1:3306, non localhost: 3306, e il tuo file hosts o altra configurazione di routing non viene invocato correttamente dall'interprete python.

+0

WAH. Avrei giurato di aver letto dei luoghi in cui la gente diceva di cambiare * in * usando "localhost" da un indirizzo, quindi non ho mai provato a cambiarlo in 127.0.0.1. Tuttavia, questo sembra aver funzionato! (Almeno ora restituisce un errore con la mia sintassi MySQL che dovrò capire.) Non sono esattamente sicuro del motivo per cui ha funzionato, perché, guardando la tabella mysql.user, la selezione dell'host restituisce solo localhost. Grazie mille! Avrei dovuto chiedere prima e mi sono salvato 3 ore. – Amy

+0

controllare la seconda parte della mia risposta - sarà a che fare con il routing – simon

0

Assicurarsi di aver aperto la porta TCP 3306 nel firewall per le connessioni.

vedere anche questa domanda Can't connect to MySQL server on 'localhost' (10061)

+0

Ah, avrei dovuto dire che sono arrivato addirittura a disabilitare completamente il mio firewall nel tentativo di farlo funzionare bene. Grazie per il suggerimento però. – Amy

Problemi correlati