2014-06-11 5 views
0

En utilisant multithreading.dummy.Pool et MySQLdb pour effectuer des requêtes sur la base de données MySQL. Obtenir l'erreur:MySQLdb.Connect raises.OperationalError: Impossible de se connecter au serveur MySQL

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 
'127.0.0.1' (10055)") 

Quelqu'un peut-il aider à résoudre ce problème?

Merci à tous.

P.S. Désolé pour mon mauvais anglais.

UPD: Certains code:

import MySQLdb as mdb 
from multiprocessing.dummy import Pool as ThreadPool 
def worker1(target): 
    con = mdb.connect(HOST, USER, PASSWORD, DB, charset='utf8') 
    cur = con.cursor() 
    cur.execute("insert into links values('"+target[0]+"', '"+target[1]+"',  '"+target[2]+"','"+target[3]+"')") 
    con.commit() 
    con.close() 

def main(): 
    pool = ThreadPool(200) 
    pool.map(worker1, links) 
    pool.close() 
    pool.join() 
+0

Tal Kremerman, je suis serveur en cours d'exécution sur mon ordinateur, le port 3306. Sur mon ordinateur portable tout fonctionne parfaitement sur la taille ThreadPool 8. Sur la machine serveur avec Core i-7 mon script a renvoyé cette erreur. Pour attraper cette erreur sur mon cahier j'ai fait ThreadPool taille 200 et changé max_connection à 2000 –

+0

Ainsi vous avez mysql s'exécutant sur votre ordinateur et sur le serveur? Et si vous exécutez la méthode connect en dehors du contexte de travail et de multitraitement cela fonctionne? – Korem

+0

Attendez une minute s'il vous plaît. J'essaierai. –

Répondre

0

MySQL par défaut permettant à 100 connexions à la fois. Le code engendre 200 threads, chacun (essaie de) se connecter à la base de données. Ainsi, 100 échouera.

Envisagez d'utiliser un pool de connexions. Ou, dites-MySQL pour permettre plus de connexions à la fois:

http://major.io/2007/01/24/increase-mysql-connection-limit/

+0

Sur mon pc max_connections = 2000 –

Questions connexes