2010-12-15 120 views
3

J'essaie d'insérer des données 50.000 lignes avec une requête donc le serveur s'en va. J'ai essayé de changer max_allowed_packet mais ça ne change pas. Aucun conseil.serveur mysql est parti

Merci à l'avance

+0

Que voulez-vous dire qu'il s'en va? Comme geler? – Igor

+2

Wow, le serveur a disparu? Vous voulez dire qu'il y a un trou dans votre rack de serveur avec des fils qui pendent? C'est un premier :) – Marplesoft

+0

Assurez-vous de respecter toutes les causes possibles énumérées ici: [pourquoi mysql est parti] (http://dev.mysql.com/doc/refman/5.0/fr/gone-away.html) – ajreal

Répondre

1

Avez-vous vérifié mysqls de wait_timeout temps? En outre, qu'utilisez-vous pour importer les enregistrements (un script, un éditeur sql, la ligne de commande)? Php forexample utilise son propre set connect_timeout dans php.ini qui provoquera l'erreur que vous voyez.

+0

J'essaie de lancer un script avec sql editor. Je n'ai pas vérifié le délai d'expiration. S'il vous plaît dites-moi comment puis-je définir le délai d'expiration? – Novice

+0

Quel est l'éditeur? Beaucoup d'entre eux ont leurs propres paramètres d'expiration. –

+0

Sql Manager 2010 pour MySql – Novice

1

Cela prend probablement tant de temps pour créer la requête que le serveur se déconnecte en raison d'un délai d'attente inactif, ou cela prend tellement de temps à transmettre qu'il pense qu'il y a eu une erreur. La meilleure méthode est probablement de casser votre insert en groupes de 25 à 100 enregistrements.

+0

Ah. Cela prendra beaucoup de temps. Parce que j'ai 1000 000 enregistrements au total qui sont divisés par 50 000 – Novice

+0

Lors de l'utilisation d'un script perl ou php pour charger des données, utiliser des inserts avec 25-100 enregistrements était plus rapide que d'essayer de les charger tous en même temps pour moi. YMMV, possédez-vous des benchmarks –

1

There Recherchez wait_timeout et quelques mysql_ping et quelques autres suggestions.

1

J'ai défini max_allowed_packet = 64 dans my.ini et redémarré le serveur. Maintenant, ça fonctionne bien. Merci à tous pour votre aide.