una idea no muy compleja y no se hasta que punto te ayude, seria cambiar el tiempo de espera de una conexion desde php, en su configuracion en su php.ini:
mysql.connect_timeout integer
otra seria cambiar el tiempo en mysql en sus variables:
SET wait_timeout=segundos;
otra posible idea para arreglar tu problema seria ver si ya tienes una conexion abierta desde esa direccion con mysql_list_processes():
Código PHP:
<?php
$enlace = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$resultado = mysql_list_processes($enlace);
while ($fila = mysql_fetch_assoc($resultado)){
printf("%s %s %s %s %s\n", $fila["Id"], $fila["Host"], $fila["db"],
$fila["Command"], $fila["Time"]);
}
mysql_free_result($resultado);
?>
y si ya tienes entonces la cierras primero antes de ejecutar otra consulta a tu base de datos, bueno no estoy seguro pero son ideas que talvez las puedas profundizar un poco mas, cya