2011-07-12 35 views
8

Intento conectarme a una base de datos en un dominio de mi máquina virtual. Funciona en XP, pero de alguna manera no funciona en Win7 y dejar de fumar con: "OperationalError: (1042, 'No se puede obtener el nombre de host de su dirección')"¿Cómo se usa la opción skip-name-resolve cuando se usa MySQLdb para Python?

Ahora he intentado desactivar Firewall y esas cosas, pero eso no importa de todos modos. No necesito la resolución de DNS, lo que solo ralentizará todo. así que quiero utilizar la opción "skip-name-resolve", pero no hay my.ini o my.cnf cuando se utiliza MySQLdb para Python, así que ¿cómo puede todavía utilizar esta opción?

Gracias por su ayuda -Alex

Respuesta

1

Esta es una opción que debe ser establecido en el archivo de configuración de MySQL en el servidor. No puede ser establecido por las API del cliente como MySQLdb. Esto se debe a las posibles implicaciones de seguridad.

Es decir, es posible que desee denegar el acceso desde un nombre de host particular. Con skip-name-resolve activado, esto no funcionará. (Es cierto, el control de acceso a través de nombre de host no es probablemente la mejor idea de todos modos.)

+0

He usado IP y sigo recibiendo el error si se refiere a esto por nombre de host. Pero MySQLdb es más que la API del cliente, es el Servidor para Python. ¿Sabes dónde puedo hacer esos ajustes entonces? No hay servicio MySQL por ejemplo, todo está en el paquete python. – CreeTar

+0

MySQLdb no es un servidor MySQL, es una API cliente. Aún necesita un servidor MySQL para conectarse. –

+0

bueno, esto no importa para mi problema de todos modos, porque me sale este error incluso cuando uso una IP. – CreeTar

27

Añadir la siguiente línea (skip-name-resolve) en el archivo /etc/mysql/my.cnf

[mysqld] 
port = 3306 
socket = /tmp/mysql.sock 
skip-locking 
skip-name-resolve 

Y reinicie el servidor mysql

+2

Creo que 'skip-locking' es ahora' skip-externo-locking' –

+1

Sí, agregue 'skip-external-locking' y' skip-name-resolve' y tendrá un mal momento. –

+2

@OrlandoLeite, ¿qué quieres decir? – AldoB