![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam posiadam serwer active w nazwa.pl, który posiada "parametry bezpieczeństwa" . i otóż przez to posiadam błąd:
Kod Warning: mysql_connect() [function.mysql-connect]: User 'radekw' has exceeded the 'max_conn_per_hour' resource (current value: 15000) in /home/radekw/ftp/glowna.php on line 18 Plik glowna.php ,linie 18-22: Kod $waznosc=time()-dlugosc_ogloszenia; mysql_connect(SQL_IP,SQL_USER,SQL_PASS);mysql_select_db(SQL_DB);mysql_query("SET NAMES latin2;"); $sql=' SELECT * FROM ogloszenie WHERE data>'.$waznosc.' ORDER by data DESC LIMIT 4'; $result=mysql_query($sql); pokaz($result); mysql_close(); Dodam, że funkcja działa poprawnie tylko jak jest dużo użytkowników, to wyrzuca ten błąd ![]() I chciałbym żeby któryś z życzliwych użytkowników mi poradził jak poradzić sobie z tym problemem. W manualu widziałem, że są funkcje typu msql_free_result" title="Zobacz w manualu PHP" target="_manual i też widziałem konstrukcje typu: Kod if (is_resource($con)) { mysql_close($con); Ale moim zdaniem nic nie pomogą limit to limit, chyba, że się mylę. W takim razie jak sprawdzić w php, że już kończy się limit połączeń na godzinę i i czy wogle jest możliwe sprawdzenie tego parametru i jak np jest już w przeciągu godziny 14990 połączeń to pokazywać stronę typu "Serwer jest przeciążony spróbuj później". |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale moim zdaniem nic nie pomogą limit to limit Dokladnie ![]() A nie mozesz zoptymalizować skryptu? Ograniczyc liczbe zapytan, wprowadzic cache, by za kazdym razem nie latac do bazy po te same dane? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
~nospor to chyba chodzi o liczbę jednoczesnych połączeń, a nie ilość zapytań. ;]
Cytat Dodam, że funkcja działa poprawnie tylko jak jest dużo użytkowników, to wyrzuca ten błąd Rozwiązaniem problemu będzie przeniesienie serwisu na mocniejszy hosting, cache'owanie całych podstron albo korzystanie ze stałych połączeń. -------------------- ![]() 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! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ~nospor to chyba chodzi o liczbę jednoczesnych połączeń, a nie ilość zapytań No ok, ale jakby zrobil co mu radzilem: odpowiedni cache, to i liczbe połączen by zminimalizowal ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat No chyba ze mysql_connect robi nie zaleznie od tego czy są zapytania czy nie... Przecież zapytania wykonujesz po połączeniu z bazą. ![]() Więc ten sam błąd będzie wysypywał serwis niezależnie od tego, czy po mysql_connect" title="Zobacz w manualu PHP" target="_manual będą jakieś zapytania, czy nie. Moim zdaniem, serwis jest za popularny na wybrany hosting. -------------------- ![]() 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! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Przecież zapytania wykonujesz po połączeniu z bazą ech.... a o lazy connections slyszal? Stosuję tę metodę i sprawdza się znakomicie.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 11.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie jak sprawdzić w php, że już kończy się limit połączeń na godzinę i i czy wogle jest możliwe sprawdzenie tego parametru i jak np jest już w przeciągu godziny 14990 połączeń to pokazywać stronę typu "Serwer jest przeciążony spróbuj później". A nie możesz sprawdzić czy dane zostały pobrane z bazy - jeśli nie wyświetlić stronę o przeciążonym serwerze ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat ech.... a o lazy connections slyszal? No tak. Ale stawiam, że stronę ma tak skonstruowaną, że co najmniej jedno zapytanie musi być wykonane... -------------------- ![]() 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! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o połączenia to są wykonywane wtedy jak coś trzeba pobrać :
są otwierane mysql_connect() i po pobraniu od razu zamykane mysql_close(); Cytat No chyba ze mysql_connect robi nie zależnie od tego czy są zapytania czy nie... Nie na pusto nie łącze się z bazą danych, ponieważ nie mógłbym później zamknąć połączenia (wyrzuca błąd) i trzeba stosować konstrukcje typu: Kod if (is_resorourse($con) { mysql_close($con) } To co przychodzi mi na myśl to tylko blok catch/try przy poleceniu mysql_connect na stronie głównej, który przekieruje na stronę z odpowiednim komunikatem. Dodam , że wczoraj stat4u pokazał mi 47 tyś wejść i na pewno stąd ten problem, gdy mam do 30 tyś wejść wszystko jest ok. Cytat a o lazy connections slyszal? Właśnie nie słyszał ![]() No i druga prośba czy może ktoś ma jakieś namiary na płatny hosting, który takiego ograniczenia nie posiada (wybrałem nazwa.pl bo proponują dobry transfer, nie ograniczoną liczbę bd), dodam żę inne ograniczenia nie przeszkadzają mi Z góry dziękuje za odpowiedzi EDIT: ~erix zapewniam Cię że nigdzie nie robie pustego połączenia właśnie to sprawdziłem w kodzie. Ten post edytował R4D3K 15.06.2009, 11:28:58 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jeśli chodzi o połączenia to są wykonywane wtedy jak coś trzeba pobrać : Czyli jak masz 10 zapytan, to 10 razy otwierasz polączenie?
są otwierane mysql_connect() i po pobraniu od razu zamykane mysql_close(); -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nie na pusto nie łącze się z bazą danych, ponieważ nie mógłbym później zamknąć połączenia (wyrzuca błąd) i trzeba stosować konstrukcje typu: http://www.jpipes.com/index.php?/archives/...-Do-Things.html Właśnie to robisz, tylko nie znałeś (ja też ;]) nazwy. Cytat No i druga prośba czy może ktoś ma jakieś namiary na płatny hosting, który takiego ograniczenia nie posiada (wybrałem nazwa.pl bo proponują dobry transfer, nie ograniczoną liczbę bd) Ograniczenia nie posiadają chyba tylko dedyki... Ciężko będzie znaleźć hosting współdzielony z wysokim limitem połączeń... A tak w ogóle, to próbowałeś z mysql_pconnect" 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! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli jak masz 10 zapytan, to 10 razy otwierasz polączenie? Właśnie tak dzięki za wskazanie przyczyny. ![]() Czyli muszę użyć mysql_pconnect" title="Zobacz w manualu PHP" target="_manual raz ? i na końcu strony napisać mysql_close" title="Zobacz w manualu PHP" target="_manual ? W manualu odnalazłem: Cytat [...] użycia (mysql_close() nie zamyka połączeń nawiązanych za pomocą mysql_pconnect()). Dlatego też ten typ połączeń nazywany jest 'stałym'. Nie wiem czy dobrze zrozumiałem, tego połączenia się nie zamyka ![]() ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie zamyka, ponieważ z jednego połączenia korzysta kilka klientów.
-------------------- ![]() 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! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:43 |