Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zerwane połączenie z MySQL, MySQL server has gone away i użycie mysql_ping
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Witajcie. Mam kod który się długo wykonuje (połączenie z zewnętrznym serwerem przez curl), po zakończeniu sprawdzam czy jest aktywne połączenie z bazą danych - jeśli nie to próbuję je nawiązać, oto kod:

  1. //dlugowykonujący się kod - ok 10sekund
  2.  
  3. if (!mysql_ping($conn)) {
  4. echo 'Ponawiam połączenie';
  5. echo '<br/>======================<br/>';
  6. if(mysql_connect ("$dbhost","$dblogin","$dbhaslo")) echo 'POLACZONO!';
  7. else echo 'NIEPOLACZONO';
  8. echo '<br/>======================<br/>';
  9. mysql_select_db ("$db");
  10. }
  11. else echo 'Połączenie aktywne';
  12.  
  13. $query = "UPDATE .....";
  14. $result = mysql_query($query);


Niestety jedyne co wyświetla to:
Cytat
Ponawiam połączenie
MySQL server has gone away (na zapytaniu UPDATE)

nie wyświetla nawet POLACZONO/NIEPOLACZONO :/

na bank coś robię źle - tylko nie wiem co :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
jak przełączasz się między bazami, to jak chcesz mieć stałe połączenie?

nie ma to znaczenia
Cytat
U mnie wszystko ok, sprawdzałem połącznie z bazą która stoi na VPS, nie zrywa połączenia, ani nic, a więc to u Ciebie coś jest nie tak.

wiem, że u mnie, dlatego ja piszę że mam problem a nie Ty (IMG:style_emoticons/default/winksmiley.jpg)
Cytat
Nasuwa mi się pytanie, czy serwer z którym chcesz się połączyć, zezwala na połączenia z bazą, z zewnątrz?

Bez problemu zwraca mi informacje.
Cytat
Ja również z ciekawości uruchomiłem skrypt u siebie łączący się do drugiego przez cURL na odpowiednio 5,10,30,60 i 120 sekund.

Dzięki, jak już wcześniej ustaliliśmy to nie okres bezczynności zrywa połączenie tylko coś innego :/
Cytat
Podaj mi tylko gdzie masz hosting, czy to jest dedyk i jeżeli tak to w jakiej mniej więcej konfiguracji stoi wszystko.

Mój własny serwer
Cytat
Warto po każdej instrukcji PHP sprawdzać status połączenia za pomocą mysql_ping() i sprawdzać co zrywa połączenie.

To jest myśl, tak zrobię i zobaczę w jakim miejscu się wysypuje, dam znać.
Go to the top of the page
+Quote Post
Quadina
post
Post #3





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

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


Cytat(TomASS @ 4.12.2010, 14:51:38 ) *
Mój własny serwer


Sprawdź zatem ustawienia w /etc/my.cnf, ja mam ustawione 60 sekund, więc po 60 sekundach mi poprawnie zrywa połączenie ;-)

[mysqld]
wait_timeout = 1800
connect_timeout = 60
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 04:27