2009-11-27 9 views
2

J'ai un serveur WAMP 2.0 installé sur Win XP. Apache version: 2.2.11 PHP Version: 5.3 MySQL: 5.1.36Apache httpd erreur et plantage

J'ai environ 11 tables dans MySQL. Chaque exécution de mon application web (HTML/Jquery/PHP/MySQL) remplit environ 100 lignes dans 2 des tables (l'une des tables contient 2 longues colonnes blob où des données de taille jusqu'à 20Mo sont téléchargées, j'ai changé la taille Max_allowed_packet à 32M dans le fichier my.ini)

L'application fonctionne correctement pendant environ 3 semaines jusqu'à ce que le nombre de lignes de l'une des tables atteigne> 1500.

Je vois alors la (erreur rencontrée Apache httpd et doit fermer ) message d'accident httpd et il dit la mémoire illégale refernce S'il vous plaît trouver ci-dessous quelques journaux

szAppName : httpd.exe  szAppVer : 2.2.11.0  szModName : php5ts.dll  
szModVer : 5.3.0.0  offset : 0000c309  


C:\DOCUME~1\blrcom\LOCALS~1\Temp\WERc677.dir00\httpd.exe.mdmp 
C:\DOCUME~1\blrcom\LOCALS~1\Temp\WERc677.dir00\appcompat.txt 

Si j'effacer les deux tables (1500> rangées). Encore le problème est vu. J'utilise PDO PHP pour mettre à jour les tables.

Quelqu'un peut-il me guider car cela devient un bloqueur.

Cordialement, Mithun

+0

avez-vous vérifié le journal des événements de Windows et de voir quelle est la raison de l'accident? – mauris

+1

Les "logs" affichés ci-dessus ne nous disent presque rien. Vous pouvez lire le minidump vous-même (http://social.msdn.microsoft.com/Forums/en/isvwindowserrors/thread/cb0af233-8d6e-417a-a271-56148a8ff0ef, http://windowscoding.com/blogs/blake/archive /2009/05/12/opening-a-mini-dump-file-mdmp-file-with-WinDbg.aspx). Si c'est vraiment un bug, signalez-le aux développeurs appropriés (probablement PHP ou MySQL). – outis

+0

Application défaillante httpd.exe, version 2.2.11.0, module défaillant php5ts.dll, version 5.3.0.0, adresse de défaut 0x0000c309. – Vidya

Répondre

3

PROBLÈME:

Je soupçonne que vous frappez un mur de taille de fichier de 2 Go. 2 problèmes avec votre installation:

  • Premier problème: Vous l'exécutez sous Windows.
  • Deuxième problème: Vous l'exécutez sous Windows. :-)

RAISON:

Blague à part, Mysql stocke les données dans le dossier racine (par exemple C: \ Program Files \ MySQL \ MySQL Server 5.0 \ data). Chaque sous-dossier correspond à une base de données dans votre instance de MySQL. Dans chaque dossier, il y a un fichier avec l'extension .frm qui correspond à vos tables. Vérifiez si la table dans laquelle vous stockez vos téléchargements approche une limite de 2 Go. Considérant que vous avez une colonne que le magasin télécharge JUSQU'À 20 Mo * 1500 lignes - soit environ 2 Go (en supposant que la plupart de vos fichiers sont inférieurs à 20 Mo) Malheureusement Windows XP a vraiment du mal à gérer les fichiers de plus de 2 Go - les limitations du système de fichiers et du système d'exploitation. C'est la même raison pour laquelle les gens ont des problèmes avec leurs perspectives - parce qu'ils ne trient pas ou ne nettoient pas leurs courriels.

SOLUTION:

Troisième problème - Vous stockez des données binaires dans un db - jamais une bonne idée. Stockez-le sur le disque - et gardez juste référence à lui (nom ou chemin) dans votre DB. Vous pouvez également conserver votre configuration actuelle pendant un certain temps si vous passez au système ** nix * qui prend en charge des tailles de fichier plus grandes.Mais c'est toujours une mauvaise idée de stocker des données binaires de cette taille dans votre base de données directement. Cela ralentit également les recherches sur votre base de données et ralentit BEAUCOUP de vos sauvegardes (puisqu'il n'y a pas de sauvegarde incrémentielle facile dans MySQL)

Espérons que cela vous aide.

EDIT:

J'ai oublié de mentionner puisque vous utilisez WAMP, votre MySQLfolder serait dans votre dossier d'installation de WAMP. Par défaut, je pense qu'il devrait être dans c: \ wamp \ mysql \ data - mais je ne me souviens pas à coup sûr. J'utilise habituellement XAMMP sur Windows.

1

Il y a beaucoup de raisons pour lesquelles cela se passe. Gardez-vous un tableau de tous les objets de 20 Mo en mémoire? Au fur et à mesure que ça grandit, vous pourriez augmenter la taille du processus par apache au point où vous manquez de mémoire.

Questions connexes