Skocz do zawartości

Limit polączen z bazą przekroczony co zrobić?


Hitynaczasie.net

Rekomendowane odpowiedzi

Od jakiegoś czasu ponoć przekraczam limit połączen do bazy mysql (250/min/user) w tych momentach poprostu wyskakują mi błędy typu:

warning, connot, using password NO

Wszystko wraca do normy po odswierzeniu strony...

Moze można by napisać jakas linijke kodu typu:

If write "WARNING" echo"Odswierz strone - problem z baza...";

jak zauwaze ten blad jeszcze raz skopiuje i pokaze co dokladnie pisze...

Ok no i mamy :soczek:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'user'@'localhost' (using password: NO) in /home/wnecie/domains/domena.net/public_html/ust.php on line 4

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/user/domains/domain.net/public_html/ust.php on line 4
Access denied for user 'user'@'localhost' (using password: NO)

pio.gif

Odnośnik do komentarza
Udostępnij na innych stronach

warning: mysql_query() [function.mysql-query]....

Zablokowany dostęp do bazy, lub złe ustawienia.

IMO limit 150k poł/h do bazy nie jest zły na małe i średnie strony. Gorzej z dużymi, wtedy albo zmiana dostawcy albo dogadanie się z obecnym.

Tani hosting - GlowaNET.pl | Hosting na Litespeed | PHP 5.2 | MySQL 5.1

Pakiety już od 22zł rocznie! Hosting SEO

Odnośnik do komentarza
Udostępnij na innych stronach

1. Większość skryptów wyszukiwarek ma tak napisany kod, że szkoda gadać, zarzynają serwery jak tylko się da.

2. Wyjściem jest cechowanie.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

https://pl.php.net/manual/en/function.mysql-connect.php

Example #1

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Nie mozna polaczyc z baza. Odswież stronę ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Odnośnik do komentarza
Udostępnij na innych stronach

Ale czy mozna coś napisać zeby podczas wywalania tego bledu pojawial sie też napis "ODSWIERZ STRONE!"

ale to nie rozwiazuje problemu, bo jak bedziesz mial duzo ludzi na stronie to nie wazne ile razy odswiezysz i tak ci sie nie polaczy jak przekraczasz limit polaczen

Nauka angielskiego online - https://www.e-angielski.com

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli masz przekroczony limit połączeń do bazy to nie wyskakują jakieś tam komunikaty tylko "Too many connections"...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Kolega przekracza limit zapytań a nie połączeń, e: albo limit połączeń/zestawione połączenia do serwera są zrywane. Jeżeli strona dobrze prosperuje to czas zainwestować w hosting z większymi limitami, serwer VPS albo serwer dedykowany.

Skrypt chroniący zasoby serwera przed atakami botów exaBotDefender: https://docs.google.com/View?id=dgkd4pj4_0hfj5j4gx

Odnośnik do komentarza
Udostępnij na innych stronach

Dodaj jakies proste cache dla zapytań , zamiast za każdym razem wyciagac te same dane z bazy danych zapisuje je sobie do jakiegoś pliku

przykład

BEFORE

<?php
mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć: ' . mysql_error());
mysql_select_db('baza');

$result = mysql_query("SELECT id, nazwa FROM tabela");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s  Nazwa: %s", $row[0], $row["nazwa"]);  
}
mysql_free_result($result);
?>

AFTER:

<?php
mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć: ' . mysql_error());
mysql_select_db('baza');

$result = mysql_query_cache("SELECT id, nazwa FROM tabela");

while ($row = mysql_fetch_array_cache($result, MYSQL_BOTH)) {
printf ("ID: %s  Nazwa: %s", $row[0], $row["nazwa"]);  
}
mysql_free_result($result);
?>

mysql_query_cache - sprawdza czy zapytanie jest w cache , np. moga to byc pliki o nazwie md5(SQL), jezeli plik istnieje to sprawdzamy datę czy cache nie jest za stare , ewentualnie odpytujemy baze danych, wynik funkcji to moze być tablica albo obiekt który zawiera czane z zapytania

mysql_fetch_array_cache - funkcja która zwraca jeden wiersz juz z cache

Odnośnik do komentarza
Udostępnij na innych stronach

Od jakiegoś czasu ponoć przekraczam limit połączen do bazy mysql (250/min/user)
:)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Ale czy mozna coś napisać zeby podczas wywalania tego bledu pojawial sie też napis "ODSWIERZ STRONE!"

Ale to nie jest rozwiazanie. To jeszcze zwiekszy ilośc zapytań jak kazdy posadzi palucha na F5 :)

Potrzebujesz inny hosting albo kogoś kto grzebnie w kodzie i zmodyfikuje go mając na uwadze optymalizacje zapytań do bazy.

.

Odnośnik do komentarza
Udostępnij na innych stronach

MKR niestety nie dziala tzn jak strona dziala wyswietla sie 'Connected successfully' ale podspodem jakies dwa kolejne warningi

Chyba błędy, że nie ma takiej funkcji.

A moze coś w tym stylu:

if echo"warning";
then 
echo"Odswierz strone";

Nie pisałeś nic nigdy w PHP, prawda? Czas zmienić hosting i to pewnie na VPSa.

Sprawdź liderów systemów wymiany linków:

linkme.pl (stały), gotlink.pl (rotacyjny)

alexain.jpgalexaol.jpgalexaat.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

Na limit zapytań (nie mylić z limitem połączeń, bo to całkiem co innego) jedynym panaceum jest cachowanie danych, przeważnie gotowego kodu HTML na ich podstawie generowanego. Polecam zapoznanie się z Cache Lite z PEAR. Ewentualnie napisanie cachowania wyników samych zapytań SQL;

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności