MySQLdb.Connect引发OperationalError:无法连接到MySQL服务器

1 投票
1 回答
1290 浏览
提问于 2025-04-18 09:28

使用 multithreading.dummy.Pool 和 MySQLdb 来向 MySQL 数据库发送查询时,遇到了错误:

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

有没有人能帮我解决这个问题?

谢谢大家。

附言:抱歉我的英语不好。

更新:一些代码:

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()

1 个回答

0

MySQL默认允许同时有100个连接。如果你的代码创建了200个线程,每个线程都试图连接到数据库,那么就会有100个连接失败。

可以考虑使用连接池。或者,告诉MySQL允许同时连接更多的用户:

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

撰写回答