Sto usando PHP 5.6.20, PDO (solo eccezioni di lancio) e MySQL 5.6.28 con connessioni permanenti e TUTTO è utf8mb4. Il mio intero stack è impostato per utf-8 (impostazioni della stringa dsn, connessioni, database del database server, tabelle, colonne, Apache 2.4.12, PHP, tutte le pagine web, CSS ... tu lo chiami).
Viene visualizzato il seguente messaggio di errore a intermittenza ed è mistificante e fastidioso.
Avviso: PDO :: __ construct(): invia su 5 byte riuscita con errore = 32 tubo rotto nel file/foo/bar/baz
Supponendo una connessione permanente è un non interattivo uno , il manuale di MySQL 5.6 (5.1.4 Variabili di sistema del server) dice quanto segue sulla variabile di sistema del server wait_timeout
.
Il numero di secondi il server attende per l'attività su un non interattiva collegamento prima di chiuderlo.
predefinito: 28800 sec
(28000 sec/1) * (1 hour/3600 sec) = 8 hours
massima: 31.536.000 sec
((31536000 sec/1) * (1 hr/3600 sec) * (1 day/24 hrs) = 365 days
Pertanto, controllare wait_timeout
nella vostra my.cnf
e decidere se le connessioni persistenti sono quello che ti serve. Inoltre, dovrai investire per rendere la tua applicazione più affidabile per tenere conto di una connessione persistente che è stata abbattuta. Chiaramente, non vuoi che il tuo cliente torni il giorno dopo (dopo essere tornato a casa per la notte) e dì "Che diamine ?!"
fonte
2016-05-01 11:24:27
Hai provato a collegarti tramite l'utilità della riga di comando? –
Esiste qualcosa di simile/correlato anche nel registro mysqld? – VolkerK
Non ho problemi con l'uso del client cli mysql. e come ho detto, mysqlnd si connette e la connessione funziona ma getta questo avviso ob ogni pconnect() ora. –