nagle at animats.com
Mon Nov 17 18:01:53 CET 2008
Alfons Nonell-Canals wrote:
> I've developed a program using python that have to connect to a mysql
> server several times.
> In a local machine (running the program in the same machine where the
> mysql server is) I have no problems. I can run several instances of the
> program at the same time with no problem.
> Them problem arrives when I try to distribute the tasks to different
> machines, for example, in a cluster. In this situation, the machine that
> runs the python program is different than the machine that hosts the
> If I run the python program only an other machine, only one run of the
> program, there is no problem. But, If I run the program in different
> machines, all of them connecting to the same database server, randomly,
> it crash. Crash all running programs! at the same time.
> The output is clear:
> File "/cgl/programs/ChemBang/config.py", line 67, in mysql
> db = MySQLdb.connect(host=HOST, user="USER",
> File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line
> 74, in Connect
> File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 170,
> in __init__
> _mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL
> server on 'HOST' (110)")
That's not a crash. That's a normal event when the server is out
of resources. You can catch the exception and retry.
If that's happening frequently, either there's a network problem,
or the server has inadequate socket or MySQL resources configured.
Do a SHOW PROCESSLIST on the server to see what it's doing.
You may have clients which are keeping idle connections open and
tying up server resources.
More information about the Python-list