Maison > base de données > tutoriel mysql > le corps du texte

La solution au problème selon lequel le serveur MySQL a disparu lorsque MySQL importe de gros lots de données

jacklove
Libérer: 2018-06-08 23:20:36
original
2716 Les gens l'ont consulté

En raison de besoins professionnels, je dois importer un 200M sql dans la bibliothèque utilisateur

Exécuter la commande

mysql> use user
Database changed
mysql> source /tmp/user.sql
Copier après la connexion

Pendant le processus d'importation, Le serveur MySQL semble avoir disparu Erreur, l'importation des données a échoué.

Le message d'erreur est le suivant :

ERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    11Current database: userERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    12Current database: userERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    13Current database: user
Copier après la connexion

Au début, je pensais que cela était dû à un timeout, j'ai donc augmenté les valeurs de connect_timeout et wait_timeout.

Le problème persiste après la réexécution.
Solution :

Vérifiez les informations et trouvez le paramètre max_allowed_packet
L'explication officielle est de l'augmenter de manière appropriée<. 🎜> Le paramètre max_allowed_packet permet au système d'allouer une mémoire plus étendue pour le traitement lors du transfert de données volumineuses du client vers le serveur.

Vérifiez la valeur de mysql max_allowed_packet

mysql> show global variables like &#39;max_allowed_packet&#39;;
+--------------------+---------+| Variable_name      | Value   |
+--------------------+---------+| max_allowed_packet | 4194304 |
+--------------------+---------+
Copier après la connexion
Vous pouvez voir qu'elle est

4M, puis augmentez-la à 256M(1024* 1024*256)

mysql> set global max_allowed_packet=268435456;
Query OK, 0 rows affected (0.00 sec)mysql> show global variables like &#39;max_allowed_packet&#39;;
+--------------------+-----------+| Variable_name      | Value     |
+--------------------+-----------+| max_allowed_packet | 268435456 |
+--------------------+-----------+1 row in set (0.00 sec)
Copier après la connexion
Après modification, exécutez l'import, tout est normal, et le problème est résolu.


Remarque : Utilisez la commande set global pour modifier la valeur de max_allowed_packet. Elle deviendra invalide après le redémarrage de MySQL et sera restaurée à la valeur par défaut.

Si vous ne souhaitez pas restaurer après le redémarrage, vous pouvez ouvrir le fichier

my.cnf et ajouter max_allowed_packet = 256M.

Cet article explique que la solution au problème du serveur MySQL a disparu lors de l'importation de gros lots de données dans MySQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois.

Recommandations associées :

Instances de MySQL recherchant des données dans un rayon de N kilomètres à proximité

Méthode MySQL pour se reconnecter automatiquement lorsque la connexion est interrompue

php implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!