Mulla on jo pitkään ollut ongelmana, että tietokantakyselyjen teko heittää toisinaan(säännöllisyyttä en ole löytänyt) virheen:
Error while sending QUERY packet.
Joka kerta tuo virhe on tullut pienistä kyselyistä(tauluissa vain muutamia rivejä), joissa haetaan tai päivitetään ID:n perusteella riviä. Virhe tuli viimesimmäksi tällaisesta kyselystä:
$HaeKayttaja = $PDO->prepare("SELECT * FROM users WHERE ID = ?"); $HaeKayttaja->execute(array($_SESSION["User"]["ID"]));
MySQL:stä oon muuttanut seuraavat muuttujat, ei apua:
wait_timeout = 28800 max_allowed_packet = 1G
Mitähän tuon ongelman ratkaisemiseksi voisi vielä kokeilla?
Edit. Tuota ongelmaa on ilmennyt toistaiseksi vain Websocket-palvelimen tekemissä kyselyissä.
Onko yhteyden käytössä ohjelmassa pitkiä taukoja? Oletko kokeillut pitää yhteyden hengissä esimerkiksi lähettämällä ajastetusti jotain turhia kyselyitä, vaikka 10 sekunnin välein "SELECT 1"?
Purkkaratkaisuna ainakin voi laittaa kyselyn funktioon, tunnistaa virhetilanteen ja luoda silloin uuden yhteyden.
Kyllä on pitkiä taukoja yhteyden käytössä, tunteja, jopa päivä. En ole kokeillut lähetellä aktivoivia kyselyitä, pitääpä kokeilla tuota.
Nyt kerkesin kurkaamaan. Tuon kyseisen websocket-palvelin kirjaston tick-funktiossa tehdään 6 kyselyä ja funktio käsittääkseni suoritetaan vähintään sekunnin välein. Joten ei liene pitkistä tauoista johtuva tuo ongelma.
Aihe on jo aika vanha, joten et voi enää vastata siihen.