2011-02-02 26 views
7

Esto me está volviendo loco.MySQL-python No se puede conectar al servidor

Tengo Python 2.5 y MySQL-python-1.2.3 del .exe disponible here instalado en Vista.

He estado haciendo .php páginas en las últimas semanas y me he conectado bien para probarlas en mi navegador.

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

También he estado usando comandos de MySQL con

mysql.exe -uroot -pmypassword just fine. 

Sin embargo, cuando intento utilizar MySQLdb con

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

consigo

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

He comprobado que MySQL se está ejecutando en servicios. Comprobé la configuración de MySQL en my.ini y se está ejecutando en port = 3306. Incluso he desinstalado y reinstalado MySQL 5.1. Leí varias páginas de problemas de conexión y respuestas en Google, pero no he obtenido nada. Debe ser algo simple que estoy pasando por alto, pero ¿alguien tiene más ideas?

+0

Esto me está volviendo loco también ... http://stackoverflow.com/search?q=cannot+connect+to+mysql – ajreal

+0

mente para duplicar comprobar el puerto ??? es el puerto predeterminado 3306 o 10061? – ajreal

Respuesta

15

No use la versión de Windows (toda mi experiencia relevante es en Linux), pero estaría dispuesto a apostar a que funcionará si usa 127.0.0.1 en lugar de localhost.

Editar: - un poco de explicación.

En primer lugar, verifique las entradas en mysql. user tabla, para el campo host (aunque de forma predeterminada, es probable que tenga tres entradas para root que cubran todas las bases). Lo más probable es que su problema esté causado por el hecho de que el servicio MySQL está escuchando en 127.0.0.1:3306, no en localhost: 3306, y su archivo hosts u otra configuración de enrutamiento no está siendo invocada correctamente por el intérprete de python.

+0

WAH. Podría haber jurado que leí sobre lugares donde la gente decía cambiar * a * usando "localhost" desde una dirección, así que nunca intenté cambiarlo a 127.0.0.1. Sin embargo, esto parece haber funcionado! (Al menos ahora está devolviendo un error con la sintaxis de MySQL, que tendré que resolver). Sin embargo, no estoy seguro de por qué funcionó, porque al mirar la tabla mysql.user, la selección del host devuelve localhost. ¡Muchas gracias! Debería haber preguntado antes y me ahorré 3 horas. – Amy

+0

verifique la segunda parte de mi respuesta; será con la ruta – simon

0

Asegúrese de haber abierto el puerto TCP 3306 en su firewall para las conexiones.

Véase también esta pregunta Can't connect to MySQL server on 'localhost' (10061)

+0

Ah, debería haber dicho que incluso llegué a inhabilitar por completo mi firewall para intentar que esto funcione también. Gracias por la sugerencia sin embargo. – Amy

Cuestiones relacionadas