2009-07-22 6 views
1

Ce code fonctionne très bien:python problème de connexion MySQL

import MySQLdb 

db = MySQLdb.connect("localhost", "root", "","bullsorbit") 
cursor = db.cursor() 

cursor.execute("Select * from table where conditions'") 
numrows = int(cursor.rowcount) 

print 'Total number of Pages : %d ' % numrows 

mais si je donne mon adresse IP

db = MySQLdb.connect("192.168.*.*", "root", "","bullsorbit") 

il donnera cette erreur

super(Connection, self).__init__(*args, **kwargs2) 
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'ip address' (111)") 
+0

Votre serveur est configuré pour permettre à la racine de se connecter sur une connexion non-localhost? –

Répondre

3

avec localhost vous vous connectez via loopback-interface.

avec ip-vous connecter - que vous vous connectez à partir extern.

si votre serveur ne permet la connexion locale (loopback) votre connexion ip-échoue. (Sécurité!)

regardez votre config mysql, peut-être ne sont autorisés que connexions locales.

est le commutateur saut-réseau hors tension (dans le mysql-conf)?

#skip-networking 
0

Au lieu de:

db = MySQLdb.connect("192.168..", "root", "","bullsorbit")

essayer:

db = MySQLdb.connect(user="root", host="192.168..", db="bullsorbit")

Mot de passe par défaut à une chaîne vide et essayer les méthodes habituelles d'identité. L'hôte utilisera aussi par défaut localhost sur le port par défaut.

+0

salut merci pour la réponse .. j'essaie les deux je vais donner le même message d'erreur –

5

Code de 2003 est un standard MySQL client error:

Error: 2003 (CR_CONN_HOST_ERROR) Message: Can't connect to MySQL server on '%s' (%d)

Je suppose que votre utilisateur ne peut pas se connecter au serveur MySQL en utilisant une adresse iP. Que se passe-t-il si vous essayez une connexion en utilisant le client en ligne de commande MySQL?

$ mysql --host=192.168.1.1 -u root bullsorbit

+0

ERROR 2003 (HY000): Impossible de se connecter au serveur MySQL sur '192.168.5.23' (111) –

+0

Donc votre problème n'a rien à voir avec Python. Vous devez autoriser l'utilisateur à se connecter à partir de l'adresse IP de votre machine locale. –

+0

merci beaucoup ..... –

0

Pour l'erreur 2003, une autre possibilité est que trop de connexions sont tentées en trop peu de temps. J'ai remarqué ce même comportement quand j'avais 127.0.0.1 que ma chaîne de connexion. D'abord je l'ai remplacé par localhost qui m'a encore plus loin mais toujours la même erreur 2003. Puis j'ai vu que si je réduisais le nombre d'appels, l'erreur disparaissait complètement.