Провайдеры Shared-хостинга обычно допускают довольно небольшое количество одновременных подключений для одного и того же пользователя.
Что ваш код делает:
- открыть соединение с сервером MySQL
- делай вещи (генерируя страницу)
- закрыть соединение в конце страницы.
Последний шаг, когда он выполняется в конце страницы, не является обязательным : (цитируя руководство mysql_close
):
Использование mysql_close () обычно не
необходимо, как непостоянное открытие
ссылки автоматически закрываются на
конец выполнения скрипта.
Но обратите внимание, вы, вероятно, не должны использовать постоянные соединения в любом случае ...
Два совета:
- использование
mysql_connect
вставка mysql_pconnect
(уже хорошо для вас)
- Установите четвертый параметр mysql_connect в false (для вас это уже нормально, так как это значение по умолчанию) : (цитирование руководства):
Если сделан второй звонок
mysql_connect () с тем же
аргументы, никакой новой ссылки не будет
установлено, но вместо этого ссылка
идентификатор уже открытой ссылки
будет возвращен.
Новая_ссылка
параметр изменяет это поведение и
делает mysql_connect () всегда открывать
новая ссылка, даже если mysql_connect () был
звонил раньше с тем же
параметры.
Тогда что может вызвать проблемы?
Может быть, вы пытаетесь получить доступ к нескольким страницам параллельно (например, используя несколько вкладок в вашем браузере) , что будет имитировать одновременное использование веб-сайта несколькими пользователями?
Если у вас много пользователей, использующих сайт одновременно, и код между mysql_connect
и закрытием соединения занимает много времени, это будет означать, что много соединений открываются одновременно ... И вы ' достигнем предела : - (
Тем не менее, поскольку вы являетесь единственным пользователем приложения, учитывая, что у вас разрешено до 200 одновременных подключений, происходит что-то странное ...
Хорошо, подумав о " слишком много соединений " и "max_connections
" ...
Если я правильно помню, max_connections
не ограничивает количество подключений , которое вы можете открыть к MySQL Server, но общее количество подключений , которые могут быть открыты для этого сервер, любым, кто подключается к нему .
Цитирование документации MySQL по Слишком много подключений :
Если вы получаете слишком много соединений
ошибка при попытке подключиться к
MySQL сервер, это означает, что все
доступные соединения используются
другие клиенты.
Количество разрешенных соединений:
контролируется max_connections
системная переменная. Значение по умолчанию
100. Если вам нужно поддерживать больше соединений, вы должны установить большее
значение для этой переменной.
Так что, на самом деле, проблема может не исходить ни от вас, ни от вашего кода (что на самом деле выглядит нормально) : может "просто" быть, что вы не единственный, кто пытается подключиться к этому MySQL сервер (помните, «общий хостинг») , и что слишком много людей используют его одновременно ...
... и , если я прав, и это , вы ничего не можете сделать, чтобы решить проблему: если на этом сервере слишком много баз данных / пользователей и это max_connection
установлен на 200, вы будете продолжать страдать ...
Как примечание: прежде чем вернуться к GoDaddy и спросить их об этом, было бы неплохо, если бы кто-то смог подтвердить то, что я только что сказал ^^