Question

Dans mon Magento EE 14.0.1, quand j'essaie de réindexer catalog_product_flat comme ceci:

php indexer.php --reinex catalog_product_flat

Après plusieurs minutes, il me lance ce message d'erreur:

Product Flat Data index process unknown error:
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/magento/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /var/www/magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /var/www/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `enterpr...', Array)
#5 /var/www/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `enterpr...', Array)
#6 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#7 /var/www/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(380): Zend_Db_Adapter_Abstract->fetchRow(Object(Varien_Db_Select))
#8 /var/www/magento/app/code/core/Mage/Core/Model/Abstract.php(225): Mage_Core_Model_Resource_Db_Abstract->load(Object(Enterprise_Mview_Model_Metadata), '10', NULL)
#9 /var/www/magento/app/code/core/Enterprise/Index/Model/Action/Abstract.php(167): Mage_Core_Model_Abstract->load('10')
#10 /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Action/Product/Flat/Refresh.php(136): Enterprise_Index_Model_Action_Abstract->_setChangelogValid()
#11 /var/www/magento/app/code/core/Enterprise/Mview/Model/Client.php(109): Enterprise_Catalog_Model_Index_Action_Product_Flat_Refresh->execute()
#12 /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Observer/Flat.php(78): Enterprise_Mview_Model_Client->execute('enterprise_cata...')
#13 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1338): Enterprise_Catalog_Model_Index_Observer_Flat->processShellProductReindexEvent(Object(Varien_Event_Observer))
#14 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Enterprise_Catalog_Model_Index_Observer_Flat), 'processShellPro...', Object(Varien_Event_Observer))
#15 /var/www/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('catalog_product...', Array)
#16 /var/www/magento/shell/indexer.php(167): Mage::dispatchEvent('catalog_product...')
#17 /var/www/magento/shell/indexer.php(212): Mage_Shell_Compiler->run()
#18 {main}

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/magento/lib/Zend/Db/Statement/Pdo.php:234
Stack trace:
#0 /var/www/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /var/www/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /var/www/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `enterpr...', Array)
#4 /var/www/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `enterpr...', Array)
#5 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#6 /var/www/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(380): Zend_Db_Adapter_Abstract->fetchRow(Object(Varien_Db_Select))
#7 /var/www/magento/app/code/core/Mage/Core/Model/Abstract.php(225): Mage_Core_Model_Resource_Db_Abstract->load(Object(Enterprise_Mview_Model_Metadata), '10', NULL)
#8 /var/www/magento/app/code/core/Enterprise/Index/Model/Action/Abstract.php(167): Mage_Core_Model_Abstract->load('10')
#9 /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Action/Product/Flat/Refresh.php(136): Enterprise_Index_Model_Action_Abstract->_setChangelogValid()
#10 /var/www/magento/app/code/core/Enterprise/Mview/Model/Client.php(109): Enterprise_Catalog_Model_Index_Action_Product_Flat_Refresh->execute()
#11 /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Observer/Flat.php(78): Enterprise_Mview_Model_Client->execute('enterprise_cata...')
#12 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1338): Enterprise_Catalog_Model_Index_Observer_Flat->processShellProductReindexEvent(Object(Varien_Event_Observer))
#13 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Enterprise_Catalog_Model_Index_Observer_Flat), 'processShellPro...', Object(Varien_Event_Observer))
#14 /var/www/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('catalog_product...', Array)
#15 /var/www/magento/shell/indexer.php(167): Mage::dispatchEvent('catalog_product...')
#16 /var/www/magento/shell/indexer.php(212): Mage_Shell_Compiler->run()
#17 {main}

Next exception 'Enterprise_Index_Model_Action_Exception' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Action/Product/Flat/Refresh.php:140
Stack trace:
#0 /var/www/magento/app/code/core/Enterprise/Mview/Model/Client.php(109): Enterprise_Catalog_Model_Index_Action_Product_Flat_Refresh->execute()
#1 /var/www/magento/app/code/core/Enterprise/Catalog/Model/Index/Observer/Flat.php(78): Enterprise_Mview_Model_Client->execute('enterprise_cata...')
#2 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1338): Enterprise_Catalog_Model_Index_Observer_Flat->processShellProductReindexEvent(Object(Varien_Event_Observer))
#3 /var/www/magento/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Enterprise_Catalog_Model_Index_Observer_Flat), 'processShellPro...', Object(Varien_Event_Observer))
#4 /var/www/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('catalog_product...', Array)
#5 /var/www/magento/shell/indexer.php(167): Mage::dispatchEvent('catalog_product...')
#6 /var/www/magento/shell/indexer.php(212): Mage_Shell_Compiler->run()
#7 {main}
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/magento/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /var/www/magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /var/www/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT RELEASE_...', Array)
#5 /var/www/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT RELEASE_...', Array)
#6 /var/www/magento/app/code/core/Enterprise/Index/Model/Resource/Helper/Mysql4.php(56): Varien_Db_Adapter_Pdo_Mysql->query('SELECT RELEASE_...', Array)
#7 /var/www/magento/app in /var/www/magento/lib/Zend/Db/Statement/Pdo.php on line 234
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/magento/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /var/www/magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /var/www/magento/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /var/www/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT RELEASE_...', Array)
#5 /var/www/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT RELEASE_...', Array)
#6 /var/www/magento/app/code/core/Enterprise/Index/Model/Resource/Helper/Mysql4.php(56): Varien_Db_Adapter_Pdo_Mysql->query('SELECT RELEASE_...', Array)
#7 /var/www/magento/app in /var/www/magento/lib/Zend/Db/Statement/Pdo.php on line 234

Aucune autre erreur dans le système.journal d'exception.journal ou php journal des erreurs.Dans MySQL Journal des Erreurs, je trouve cet Avertissement, qui est d'imprimer quelques secondes avant de l':

Aborted connection 23157178 to db: 'magento_magento' user: 'usert' host: 'xx.xx.xx.xx' (Got timeout reading communication packets)

J'ai essayé de réglage de max_allowed_packet que de 64 MO dans la Configuration de MySQL, mais je n'est pas le résultat.

Aucune idée, s'il vous plaît?

EDIT1:

J'ai tenté d'augmenter la wait_timeout pour 3600 et max_allowed_packet pour 999999488 (Octets) mais l'erreur persiste.

Supplémentaire, si je lance certains autres de l'indice de catalog_url_product, catalogsearch_fulltext ou catalog_product_attribute, ces exécutée avec succès.

Je ne sais pas si il a à faire, mais la base de données de réplication.J'en ai un Maître et un Esclave, et l'erreur "Arrivés délai d'attente de lecture de la communication de paquets" apparaît dans le journal de l' Maître.

Était-ce utile?

La solution 2

Eh bien, je ne sais pas si l'erreur est résolue à 100% ou non.Mais sur la base de ce que vous m'avez dit ici, et dans ce post: https://dba.stackexchange.com/questions/40899/mysql-error-reading-Paquet de communication , je fais ces modifications dans le fichier de configuration MySQL:

max-allowed-packet              = 1024M
wait-timeout                    = 7200
innodb-log-file-size            = 2047M
innodb-log-buffer-size         = 8M
innodb-log-buffer-size         = 32M

Et ceci dans mon mysql:

SET GLOBAL wait_timeout = 7200;
SET GLOBAL max_allowed_packet = 1000000000;
SET GLOBAL net_buffer_length = 1000000;

et après cela, je pourrais réindex tout avec succès.Je ne sais pas si en fait InnoDb-Bock-tampon-taille et InnoDB-Log-Taille tampon-taille a été le truc.

Je continuerai à surveiller, merci.

Autres conseils

Cela est principalement dû à l'une des deux raisons ci-dessous

  1. Serveur a expiré et a fermé la connexion.
    correctif:essayez d'augmenter la wait_timeout variable dans votre mysqld est my.cnf/my.ini fichier de configuration.
  2. Abandonné par serveur incorrecte ou trop volumineux paquet.
    correctif :augmentation de la durée maximale limite de taille de paquet par l'augmentation de la valeur de max_allowed_packet dans my.cnf/my.ini fichier.

Vous avez déjà augmenté max_allowed_packet à 64 MO, essayez de l'augmenter à 128 ou plus ainsi, si cela ne fonctionne pas.
Il semble être question de ressources uniquement.
Vérifiez également si l'indexation n'est pas la rupture due à toute autre raison aussi, pour vérifier si le processus d'indexation est très bien.

Essayez d'augmenter max_allowed_packet à plus avant de réparer votre problème. et redémarrez MySQL après avoir changé ce réglage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top