While reindexing "Product Flat Data", I am getting the following error message, "Cannot initialize the indexer process". Please suggest how to fix this and allow reindexing.
-
check the var/log folder for errors.– Marius ♦Sep 22, 2013 at 18:32
-
Well , this is the error, 2013-09-22T18:42:19+00:00 DEBUG (7): Exception message: SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs– NivedSep 22, 2013 at 18:52
-
Do you have any products with any unusually large descriptions? I think what its saying is one of the row entries has more than 65535 characters in it.– Adam KernigSep 22, 2013 at 18:56
-
I have lot of product attributes, may be that could be the problem?– NivedSep 22, 2013 at 18:58
-
Hi nived, im not to sure, i dont know if the 1118 stands for row number or anything, but if the row size is too large it could be the case, have a look in the product_flat table, and see if it looks unusually large, that may help– Adam KernigSep 22, 2013 at 19:24
5 Answers
Based on the error you specified in the comment, I can conclude that you cannot use the flat product tables. It's exactly what I was saying here. You have too many attributes (or too large values) used in product listing. Edit your product attributes and change the field Used in product listing
to no
for the attributes that are not needed in the product list.
If they are not that many, you may want to remove from product list the product description or any other field that has long values.
[EDIT]
If you don't want to remove attributes from product listing you need to disable the flat products. The website will work a little (or a lot) slower, but at least it will work.
I had this issue and it turned out that a table needed to be repaired.
Run the following command from shell:
php {directory_root}/shell/indexer.php --reindex
I had an error like the following:
'General error: 145 Table './{datbasename}/mg_catalogsearch_fulltext' is marked as crashed and should be repaired'
I ran a mysql REPAIR
on the mentioned table and could then run the indexer without issue.
To resolve the "Cannot initialize the indexer process" you need to run follow below step
Solution 1 :-
This is usually occurred when we Enable "Use Flat Catalog Category" and "Use Flat Catalog Product"
Please connect SSH via Putty run below command:-
These is Individual commands for re-indexing:-
php shell/indexer.php --reindex catalog_category_flat
php shell/indexer.php --reindex catalog_category_product
php shell/indexer.php --reindex catalogsearch_fulltext
OR run all re-indexing:-
php shell/indexer.php --reindexall
Then clear the magento all cache.
Solution 2 :-
Try to run indexing with PHP script file. Create a file reindex_custom.php in the root.
<?php
require_once("app/Mage.php");
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
try{
$indexerByShell = Mage::getBaseDir().'/shell/indexer.php';
if(file_exists($indexerByShell))
{
$indexListByCode = array(
"catalog_product_attribute",
"catalog_product_price",
"catalog_product_flat",
"catalog_category_flat",
"catalog_category_product",
"catalog_url",
"catalogsearch_fulltext",
"cataloginventory_stock"
);
//reindex using magento command line
foreach($indexListByCode as $indexer)
{
echo "reindex $indexer \n ";
exec("php $indexerByShell --reindex $indexer");
}
}
}catch(Exception $e){
echo $e;
}
?>
Then clear the magento all cache and run this file as http://domain.com/reindex_custom.php
I got this error after installing an extension. I fixed it by going to Magento Connect Manager and uninstalling the extension I previously installed. After the uninstall, I was able to go to the Index Management page and refresh all the indexes. I then installed the extension manually and there were no problems after that. It's also handy to have backups readily available for situations like this!
Product flat data indexer builds flat tables (catalog_product_flat_1 ...) based on product eav attributes. If on your store have many attributes and they are searchable or used in product listing or attribute type is "static", then row size of product flat tables are exceed the limit. You can read more here.
Remove unnecessary attributes or use them as not (searchable, used for product listing, used for product displaying, used for promo rules ...).