Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] max_user_connections, sleep
kleszczoscisk
post 11.01.2009, 13:20:33
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kleszczoscisk 11.01.2009, 13:30:04


--------------------

Siedź cicho, kiedy śpi licho.
Go to the top of the page
+Quote Post
erix
post 11.01.2009, 22:29:11
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kleszczoscisk
post 12.01.2009, 09:04:14
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


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. ?>


--------------------

Siedź cicho, kiedy śpi licho.
Go to the top of the page
+Quote Post
bmL
post 12.01.2009, 09:55:29
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


A dla mysql_close nie trzeba przypadkiem podać identyfikatora połączenia? W twoim wypadku t.j. $link


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
phpion
post 12.01.2009, 10:09:22
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
kleszczoscisk
post 12.01.2009, 12:41:59
Post #6





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

Ostrzeżenie: (0%)
-----


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 ?


--------------------

Siedź cicho, kiedy śpi licho.
Go to the top of the page
+Quote Post
erix
post 12.01.2009, 16:42:10
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 05:25