Erreur MySQL 2006 : Le serveur MySQL a disparu
P粉786432579
2023-08-23 17:47:00
<p>Je gère un serveur dans mon bureau pour traiter certains fichiers et signaler les résultats à un serveur MySQL distant. </p>
<p>Le traitement du fichier prend un certain temps et le processus se termine à mi-chemin avec l'erreur suivante : </p>
<pre class="brush:php;toolbar:false;">2006, le serveur MySQL a disparu</pre>
<p>J'ai entendu parler du paramètre MySQL <strong>wait_timeout</strong>, mais dois-je le modifier sur mon serveur de bureau ou sur un serveur MySQL distant ? </p>
J'ai été dans cette situation à plusieurs reprises et je trouve généralement que la réponse est
max_allowed_packet
.sera
/etc/my.cnf
(在[mysqld]
下)中的值提高到 8 或 16M 通常可以修复该问题。 (MySql 5.7 中的默认值为4194304
, soit 4 Mo. )Remarque : Si la ligne n'existe pas, créez simplement la ligne et elle doit apparaître comme une entrée sous
[mysqld]
Remarque : Ceci peut être défini pendant que le serveur est en cours d'exécution, mais il sera perdu après le redémarrage du démon mysql. Utilisez
SET GLOBAL max_allowed_packet=104857600
(cela le définit à 100 Mo)Remarque : Sous Windows, vous devrez peut-être enregistrer votre fichier my.ini ou my.cnf en utilisant ANSI au lieu de l'encodage UTF-8.
Il pourrait être plus simple de vérifier si la connexion existe et de la rétablir si nécessaire.
Pour plus d'informations, voir PHP:mysqli_ping.