Récemment, j'ai commencé à recevoir une erreur chaque fois que j'essaie d'ajouter un contenu, quel que soit le type. C'est l'erreur qui apparaît dans le navigateur:
Exception non capturée supplémentaire levée lors de la gestion de l'exception.
PDOException d'origine: SQLSTATE [HY000]: Erreur générale: 2006 Le serveur MySQL est parti: SELECT COUNT (cid) FROM {comment} WHERE status =: status; Tableau ([: status] => 0) dans comment_count_unpublished () (ligne 313 de /Applications/MAMP/htdocs/modules/comment/comment.module).
Additionnel
PDOException: SQLSTATE [HY000]: Erreur générale: le serveur MySQL 2006 est parti: INSERT INTO {watchdog} (uid, type, message, variables, gravité, lien, emplacement, référent, nom d'hôte, horodatage) VALEURS (: db_insert_placeholder_0,: db_insert_placeholder_1 ,: db_insert_placeholder_2,: db_insert_placeholder_3,: db_insert_placeholder_4,: db_insert_placeholder_5,: db_insert_placeholder_6,: db_insert_placeholder_7,: db_insert_placeholder_8,: db_insert_placeholder_9) Tableau ([: db_insert_placeholder_0] => 1 [: db_insert_placeholder_1] => php [: db_insert_placeholder_2] =>% type:! Message dans la fonction% (ligne% ligne du fichier%). [: Db_insert_placeholder_3] => a: 6: { s: 5: "% type"; s: 12: "PDOException"; s: 8: "! message"; s: 154: "SQLSTATE [HY000]: Erreur générale: 2006 Le serveur MySQL est parti: SELECT COUNT (cid) FROM {comment} WHERE status =: status; Tableau ([: status] = & gt; 0) "; s: 9:"% function "; s: 27:" comment_count_unpublished () "; s: 5:"% file "; s: 56:" / Applications / MAMP /htdocs/modules/comment/comment.module";s:5:"%line";i:313;s:14:"severity_level";i:3;} [: db_insert_placeholder_4] => 3 [: db_insert_placeholder_5] = > [: db_insert_placeholder_6] =>http: // localhost: 8888 /? q = noeud% 2Fadd% 2Farcade-project & amp ; [: db_insert_placeholder_7] => http: // localhost: 8888 / [: db_insert_placeholder_8] => 127.0.0.1 [: db_insert_placeholder_9] => 1338336955) dans dblog_watchdog () (ligne 154 de / Applications / MAMP / htdocs / modules / dblog / dblog.module).
J'obtiens également l'erreur suivante dans mon fichier d'erreur php:
Erreur fatale PHP: exception non détectée 'PDOException' avec le message 'SQLSTATE [HY000]: erreur générale: le serveur MySQL 2006 est parti' dans /Applications/MAMP/htdocs/includes/database/database.inc:2136
Trace de pile:
0 /Applications/MAMP/htdocs/includes/database/database.inc(2136): PDOStatement-> execute (Array)
1 /Applications/MAMP/htdocs/includes/database/database.inc(664): DatabaseStatementBase- > exécuter (Array, Array)
2 /Applications/MAMP/htdocs/includes/database/database.inc(2315): DatabaseConnection-> requête ('SELECT expire, ...', Array, Array)
3 / Applications / MAMP / htdocs / includes / lock.inc (167): db_query ('SELECT expire, ...', Array)
4 /Applications/MAMP/htdocs/includes/lock.inc(146): lock_may_be_available ('theme_registry: ...' )
5 /Applications/MAMP/htdocs/includes/theme.inc(447): lock_acquire ('theme_registry: ...')
6 /Applications/MAMP/htdocs/includes/bootstrap.inc(427): ThemeRegistry-> set ( Array)
7 [fonction interne]: DrupalCacheArray -> __ destruct ()
8 {main} jeté dans /Applications/MAMP/htdocs/includes/database/database.inc sur la ligne 2136
J'ai un peu de mal à déchiffrer ces messages d'erreur. Quelqu'un pourrait-il m'aider à comprendre ce qui se passe ici?
Cette erreur MySQL / MariaDB:
signifie essentiellement que le client n'a pas pu envoyer de question au serveur .
Cela peut se produire soit par un problème temporaire, une requête SQL trop volumineuse ou invalide, une mauvaise configuration de votre serveur ou une limitation de votre fournisseur d'hébergement.
En général, cette erreur peut résulter de plusieurs facteurs, tels que:
une requête au serveur est incorrecte ou trop volumineuse,
Solution: augmenter la
max_allowed_packet
variable .Remarque: assurez-vous que la variable est sous la
[mysqld]
section, non[mysql]
.Remarque: N'oubliez pas de redémarrer le serveur MySQL / MariaDB.
Vous avez obtenu un délai d'expiration de la connexion TCP / IP côté client.
Solution: augmenter la
wait_timeout
variable .Vous avez tenté d'exécuter une requête après la fermeture de la connexion au serveur.
Solution: une erreur logique dans l'application doit être corrigée.
Les recherches de nom d'hôte ont échoué (par exemple, problème de serveur DNS) ou le serveur a été démarré avec l'
--skip-networking
option.Une autre possibilité est que votre pare-feu bloque le port MySQL (par exemple 3306 par défaut).
Le thread en cours d'exécution a été tué, alors réessayez.
Vous avez rencontré un bogue où le serveur est mort lors de l'exécution de la requête.
Un client s'exécutant sur un hôte différent n'a pas les privilèges nécessaires pour se connecter.
Et bien d'autres, alors apprenez-en plus sur: B.5.2.9 Le serveur MySQL est parti .
Pour plus de détails, veuillez vérifier vos journaux MySQL ou système (par exemple
/var/log/messages
).Pour déboguer le serveur ou le client MySQL, veuillez vérifier: 26.5 Débogage et portage de MySQL .
Si vous essayez d'importer la base de données à partir du fichier à l'aide de la commande
drush
oumysql
, vous pouvez:Ajoutez une option de force (
-f
) pourmysql
continuer et exécuter le reste des requêtes.Ceci est utile si la base de données contient des requêtes volumineuses liées au cache qui sont volumineuses, mais de toute façon non pertinentes.
En utilisant
drush
, essayez:cat foo.sql | $(drush sqlconnect) -f
Essayez d'appliquer l'
--max-allowed-packet
option pourmysql
des valeurs plus petites.Augmentez
max_allowed_packet
etwait_timeout
dans votre configuration de serveur (par exemple~/.my.cnf
).Videz à nouveau la base de données d'origine en utilisant l'
--skip-extended-insert
option pour décomposer les grandes requêtes. Importez ensuite à nouveau le fichier.Voir aussi: ERREUR 2006 (HY000): le serveur MySQL est parti
la source
La réponse que @Clive donne normalement est le cas, mais il peut y avoir une cause supplémentaire, en particulier avec les formulaires d'ajout de nœud.
Les formulaires d'ajout de nœuds sont généralement volumineux, et leur traitement peut utiliser beaucoup de mémoire (surtout s'il y a un traitement d'image pendant la sauvegarde, comme avec les modules de recadrage). Si le serveur manque de mémoire, le processus mysqld peut être tué, ce qui entraîne le même message "disparu".
L'indice est de regarder dans les journaux du serveur. Sur une machine CentOS, vous pouvez voir l'entrée suivante dans / var / log / messages
La solution ici consiste soit à ajouter plus de RAM, soit à ajouter / augmenter le swap.
la source