284 votes

Serveur MySQL a disparu lors de l’importation de fichier sql grande

J’ai essayé d’importer un fichier sql grand via phpMyAdmin... Mais il maintenu s’affiche erreur

« MySql server has gone away »

Que faut-il faire ?

409voto

GBD Points 9139

Deux raisons les plus courantes (et fixe) pour le MySQL server has gone away (erreur de 2006) sont:

Serveur a expiré et a fermé la connexion. Comment réparer:

  1. vérifiez que la variable wait_timeout dans votre mysqld est mon.cnf fichier de configuration est assez grand. Sur Debian: sudo nano /etc/mysql/my.cnf, définissez wait_timeout = 600 secondes (vous pouvez modifier/diminution de cette valeur lors de l'erreur de 2006 n'est plus là), alors sudo /etc/init.d/mysql restart. Je n'ai pas vérifier, mais la valeur par défaut pour wait_timeout pourrait être autour de 28 800 secondes (8 heures).

  2. Abandonné par serveur incorrecte ou trop volumineux paquet. Si mysqld reçoit un paquet qui est trop grand ou incorrecte, il suppose que quelque chose s'est mal passé avec le client et ferme la connexion. Vous pouvez augmenter la durée maximale limite de taille de paquet par l'augmentation de la valeur de max_allowed_packet dans mon.cnf de fichier. Sur Debian: sudo nano /etc/mysql/my.cnf, définissez max_allowed_packet = 64M (vous pouvez modifier/diminution de cette valeur lors de l'erreur de 2006 n'est plus là), alors sudo /etc/init.d/mysql restart.

21voto

KayakJim Points 560

Si vous êtes en cours d'exécution avec des valeurs par défaut, puis vous avez beaucoup d'espace pour optimiser votre configuration de mysql.

La première étape que je recommande est d'augmenter la max_allowed_packet à 128M.

Puis téléchargez les MySQL Tuning Primer script et l'exécuter. Il formulera des recommandations à plusieurs facettes de votre config pour de meilleures performances.

Regarde aussi dans le réglage de vos valeurs de délai d'attente à la fois dans MySQL et PHP.

Quelle taille (taille du fichier) est le fichier que vous importez et êtes-vous en mesure d'importer le fichier à l'aide de la ligne de commande de mysql client au lieu de PHPMyAdmin?

9voto

askthebigo Points 61

Si vous utilisez MAMP sur OS X, vous devrez modifier le `` valeur dans le modèle de MySQL.

  1. Vous pouvez le trouver à : fichier > modèle de modification > my.cnf MySQL
  2. Ensuite il suffit de chercher `` , modifiez la valeur et sauvegardez.

Espérons que cela aide quelqu'un.

5voto

TekOps Points 11

L’autre raison, que cela peut se produire est à court de mémoire. Vérifier les logs et assurez-vous que votre fichier my.cnf n’est pas configuré pour causer mysqld d’allouer plus de mémoire que votre machine a.

Votre processus mysqld peut être tué par le noyau et puis relancée par le processus de « safe_mysqld » sans vous s’en rendre compte.

Utilisez haut et regarder l’allocation de mémoire lors de son exécution pour voir quelle est votre marge.

Faites une sauvegarde du fichier my.cnf avant d’en changer.

0voto

Kingsley Ijomah Points 193

J’ai eu une erreur similaire aujourd'hui lors de la duplication de base de données (MySQL serveur a disparu...), mais quand j’ai essayé de redémarrer mysql.server redémarrage j’ai eu erreur

Voilà comment je l’ai résolu : J’ai ouvert les Applications/Utilitaires/et courut Activity Monitor

puis a été en mesure de résoudre le problème de l’erreur avec

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X