J'utilise la même bibliothèque d'abstraction de DB pendant des années. Mais aujourd'hui, il a commencé à écrire ces messages (8) dans mon journal.
L'application fonctionne correctement mais chaque fois qu'un script se connecte à la DB le même avis est enregistré. P>
Je ne peux pas penser à ce que ce soit ont changé. Cela se passe sur ma machine de développement locale. P>
5 Réponses :
Ce peut être parce que vos données contiennent des caractères «UTF-8». J'ai eu le problème similaire est causé par celui-ci.
Exception: mysql_query (): Envoyer de 1462592 octets a échoué avec errno = 32 tuyau cassé p> blockQuote>
i utilisé p>
xxx pré> pour importer le fichier SQL contient beaucoup de caractères UTF8 (langue thaïlandaise), mais je n'ai pas défini par défaut = utf8 pour [mysql]. Donc, les mauvaises données codées dans la base de données ont provoqué ce problème. P> p>
Cela peut arriver même si vous avez tout défini sur UTF-8. Cela inclut l'utilisation de UTF8MB4. J'utilise MySQL 5.6 avec PHP 5.6.20 et j'ai toujours eu la question. Je me souviens que cela a commencé lorsque j'ai essayé de mettre en œuvre des connexions persistantes.
Si quelqu'un est en difficulté avec ce problème, voici le correctif:
Essayez de modifier / configurer Ce fichier de configuration est situé dans le redémarrez le serveur MySQL et il devrait fonctionner. P> P> wait_timeout code> dans votre mySQL my.cnf code> fichier de configuration: p> /etc/mysql/my.cnf code> (ubuntu / debian) et / usr / local / mysql /my.cnf code> (OSX). p>
Il suffit de supprimer apt-get supprimer php5-mysqlnd p>
apt-get Installer PHP5-PDO-MYSQL P>
blockQuote> mysqlnd code> pilote et utilisez mysqli code>
Oui mysqlnd code> plus moderne, mais qu'en est-il de la stabilité?
Les commandes suivantes corrigent votre problème p>
Je suis désolé, mais vous ne savez pas de quoi vous parlez. MySQLND est une extension PHP pouvant être utilisée par le MySQL _ * () CODE>, MYSQLI et PDO API comme alternative à la liaison dans libmysqlclient.so, qui permet une meilleure efficacité de la mémoire lors de la récupération des lignes et des gains de vitesse potentiels en raison d'un couplage plus serré. MySQLND ne semble pas exposer aux API au code PHP, seules d'autres extensions.
Seule solution que j'ai trouvée jusqu'à présent, changez
// From PDO::ATTR_PERSISTENT => true // To PDO::ATTR_PERSISTENT => false
J'ai remarqué que cela a commencé à arriver lorsque j'ai essayé d'utiliser également des connexions persistantes. Peut-être que je manque quelque chose.
J'utilise PHP 5.6.20, PDO (Exceptions de lancement uniquement) et MySQL 5.6.28 avec des connexions persistantes et tout est UTF8MB4. Toute ma pile est configurée pour UTF-8 (paramètres de chaîne DSN, connexions, bases de données de serveur de base de données, tables, colonnes, Apache 2.4.12, PHP, toutes les pages Web, CSS ... vous le nommez).
Je reçois le Suite à un message d'erreur par intermittence et il est mystifiant et ennuyeux. P>
AVIS: PDO :: __ Construction (): Envoyer de 5 octets a échoué avec errno = 32 tuyau cassé dans le fichier / FOO / BAR / BAR / BAR / BAR / BAR / BAR / BAR / BAR / BAR / BAR / BAR / BAR / em> p> en supposant une connexion persistante em> est un noninteractif fort> One, le manuel MySQL 5.6 (5.1.4 Variables du système serveur) indique ce qui suit sur le Variable du système de serveur Le nombre de secondes que le serveur attend l'activité sur un
Connexion non interactive forte> avant de la clôtrer. P>
blockquote> défaut: 28800 sec p> MAX : 31536000 sec p> par conséquent, cochez wait_timeout code>. p>
(28000 sec / 1) * (1 heure / 3600 secondes) = 8 heures P> P> P> wait_timeout code> dans votre my.cnf code> et décidez si des connexions persistantes sont ce dont vous avez besoin . En outre, vous devrez investir pour rendre votre application plus robuste pour rendre compte d'une connexion persistante qui a été déchirée. Strong> Clairement, vous ne voulez pas que votre client revenait le lendemain (après avoir disparu. à la maison pour la nuit) et dites "Qu'est-ce que le diable ?!" p> p>
Avez-vous essayé de vous connecter via Utilitaire de ligne de commande?
Y a-t-il quelque chose de similaire / lié dans le journal mysqld également?
Je n'ai aucun problème à utiliser le client CLI MySQL. Et comme je l'ai dit, MySQLND se connecte et la connexion fonctionne, mais elle jette cet avis ob chaque pconnect () maintenant.
Rien noté dans le journal des erreurs MySQLD. J'ai des avertissements-warnings
Oh, quelle ennuis! J'ai redémarré Apache (j'utilise APXS2 SAPI) et maintenant les messages d'erreur sont arrêtés. Ce ne sera pas facile de trouver ce qui leur causait maintenant.
Si les erreurs se produiront à nouveau maintenant que vous avez redémarré l'Apache, mes paris sont sur les délais d'attente et mysqlnd (pas aussi) reconnecter silencieusement.