Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] max_user_connections, sleep
Forum PHP.pl > Forum > Przedszkole
kleszczoscisk
Witam i proszę o pomoc

Cytat
Warning: mysql_connect() [function.mysql-connect]: User user has already more than 'max_user_connections' active connections in /home/upominki/public_html/connect.php on line 8

Taki błąd mi wywala na stronie.

Połączenie nawiązuję tak:
  1. <?
  2. $dbname = 'nazwabazy';
  3. $queryNames = " SET NAMES 'latin2' ";
  4. $link = mysql_connect("localhost","user","pass") or die("<P ALIGN=center>Brak połączenia z bazą. Powiadom proszę administratora.</p>");
  5. $db = mysql_select_db($dbname, $link) or die("<P ALIGN=center>Brak połączenia z bazą. Powiadom proszę administratora.</p>");
  6. ?>


kończę, w ostatniej funkcji skryptu tak:
  1. <?php
  2. ?>


Administrator hostingu pisze mi tak:
Cytat
Polaczenia sa w stanie SLEEP, prosze zatem zapoznac sie z informacjami na stronach mysql co oznacza stan SLEEP dla polaczenia. Konfiguracja serwera nie ma tu znaczenia, problemu musi Pan szukac w skryptach a nie zrzucac go na serwer. Obslugujemy dziesiatki tysiecy stron www, niektore z ilosciami wejsc przekraczajacymi kilka tysiecy na godzine, zatem mamy doswiadczenie w poprawnym konfigurowaniu uslug i ustawien. Pana problem powoduje wadliwy skrypt ktory nie dokancza przeslu danych do mysql, przez co nie wywoluje on polecenia close bo nie moze do niego dojsc. Bez wzgledu czy u nas czy na innym serwerze w innej firmie bedzie sie dzialo tak samo, bo zadna firma hostingowa nie jest jednoczesnie developerem mysql.


HELP...
Czytam manual php, dokumentację mysql ... i nie wiem co zrobić z tym sleep(). Bardzo proszę o wskazówki.
erix
Cytat
Pana problem powoduje wadliwy skrypt ktory nie dokancza przeslu danych do mysql, przez co nie wywoluje on polecenia close bo nie moze do niego dojsc.

Nie widać jasno? To, że w ostatniej funkcji masz zamykanie połączeń, nie znaczy, ze parser do jego końca dociera. Sprawdź, czy nie masz po drodze jakiegoś błędu.
kleszczoscisk
Cytat(erix @ 11.01.2009, 22:29:11 ) *
Nie widać jasno? To, że w ostatniej funkcji masz zamykanie połączeń, nie znaczy, ze parser do jego końca dociera. Sprawdź, czy nie masz po drodze jakiegoś błędu.

Oczywiście, że sprawdzam:
  1. <?
  2. ?>
bmL
A dla mysql_close nie trzeba przypadkiem podać identyfikatora połączenia? W twoim wypadku t.j. $link
phpion
Panowie - przecież wywołanie mysql_close() nie jest wymagane. Połączenie jest zamykane automatycznie po wykonaniu skryptu. Możliwe więc, że gdzieś wkradło się zapętlenie, które nie ma końca, w związku z czym połączenie z bazą nie jest zakańczane. Ja właśnie tu bym szukał przyczyny.
kleszczoscisk
Cytat(phpion @ 12.01.2009, 10:09:22 ) *
Panowie - przecież wywołanie mysql_close() nie jest wymagane. Połączenie jest zamykane automatycznie po wykonaniu skryptu. Możliwe więc, że gdzieś wkradło się zapętlenie, które nie ma końca, w związku z czym połączenie z bazą nie jest zakańczane. Ja właśnie tu bym szukał przyczyny.

Zakładając, że się wkradło jakieś nieskończone zapętlenie lub inny błąd, to czy mysql_close() powinno zamknąć wszystkich połączenia? Czy jest jakiś inny sposób aby uniknąć tych połączeń SLEEP, unicestwić je z poziomu PHP ?
erix
Cytat
to czy mysql_close() powinno zamknąć wszystkich połączenia?

Nie.

Cytat
Czy jest jakiś inny sposób aby uniknąć tych połączeń SLEEP, unicestwić je z poziomu PHP ?

Spróbuj z register_shutdown_function" title="Zobacz w manualu PHP" target="_manual.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.