MySQL, как и любая другая СУБД, будет ограничивать количество соединений, которые она принимает в любое время.Файл конфигурации my.cnf указывает это значение для сервера в конфигурации max_connections.Вы можете изменить эту конфигурацию, но существуют реальные ограничения в зависимости от емкости вашего сервера.
Постоянные соединения могут помочь сократить время, необходимое для подключения к базе данных, но это не влияет на общее количествоколичество соединений, которые MySQL примет.
Подключитесь к MySQL и используйте 'SHOW PROCESSLIST'.Он покажет вам открытые в данный момент соединения и что они делают.У вас может быть несколько подключений, которые простаивают или выполняют запросы, которые занимают слишком много времени.Для незанятых соединений может потребоваться только убедиться, что ваш код не поддерживает соединения открытыми, когда они им не нужны.Во-вторых, они могут быть частями вашего кода, которые необходимо оптимизировать, чтобы запросы не занимали слишком много времени.
Если все соединения допустимы, у вас просто больше нагрузки, чем позволяет ваша текущая конфигурация.Если у вас низкая нагрузка на MySQL даже при текущем количестве подключений, вы можете немного увеличить его и посмотреть, как он развивается.
Если вы не находитесь на выделенном сервере, вы вряд ли сможете с этим справиться,Это может быть просто чужой код, вызывающий проблемы.
Иногда эти сбои носят временный характер.Если это не удается, вы можете просто повторить попытку через несколько миллисекунд.Если по-прежнему происходит сбой, это может быть проблемой, и остановка сценария является правильным решением.Не помещайте это в бесконечный цикл (видел это раньше, ужасная идея).