Maison > Article > base de données > La solution au problème selon lequel le serveur MySQL a disparu lorsque MySQL importe de gros lots de données
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
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
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.
mysql> show global variables like 'max_allowed_packet'; +--------------------+---------+| Variable_name | Value | +--------------------+---------+| max_allowed_packet | 4194304 | +--------------------+---------+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 'max_allowed_packet'; +--------------------+-----------+| Variable_name | Value | +--------------------+-----------+| max_allowed_packet | 268435456 | +--------------------+-----------+1 row in set (0.00 sec)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.
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!