Добрый день! Перенес сайт на новых хостинг.. на vds сервер. Все вроде на месте.. блоги... статьи.. категории. А вот товар не отображается ни в админке ни на витрине. Причем пагинация в админке соответствует к-ву товара, а его нет. В базе sql изменений нет. Но, появилась ошибка, идентифицировать не могу: Спойлер 2015-05-29 12:07:41 - PHP Notice: Error: execute command denied to user 'mxl'@'localhost' for routine 'popularelectronics.PRODUCT_PRICE'<br />Error No: 1370<br />SELECT p.product_id,(SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating,(SELECT PRODUCT_PRICE(pd2.product_id,price,'RUB') FROM product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '2' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC,pd2.price ASC LIMIT 1) AS discount,(SELECT PRODUCT_PRICE(ps.product_id,price,'RUB') FROM product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '2' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC,ps.price ASC LIMIT 1) AS special FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY p.product_id ORDER BY p.date_available DESC,LCASE(pd.name) DESC LIMIT 0,12 in /var/www/mxl/data/www/popularelectronics.ru/system/library/db/mysqli.php on line 41 2015-05-29 12:07:41 - PHP Notice: Trying to get property of non-object in /var/www/mxl/data/www/popularelectronics.ru/catalog/model/catalog/product.php on line 193 2015-05-29 12:07:41 - PHP Warning: Invalid argument supplied for foreach() in /var/www/mxl/data/www/popularelectronics.ru/catalog/model/catalog/product.php on line 193
Это значит что у пользователя mxl недостаточно прав на таблицы БД. Если VDS, то, скорее всего, должен быть не localhos а хост VDS'ки. Ну и проверить конечно права к каждой таблице.
Зайдя под рутом, дать полные права через phpMyAdmin, либо в mysql консоле: Код: GRANT ALL ON DB_NAME.* TO 'USER'@'HOST' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Хммм .. дал все привилегии... появилась новая ошибка, где фигурирует старый логин от базы: Спойлер 015-05-29 13:41:50 - PHP Notice: Error: The user specified as a definer ('u7630_2'@'%') does not exist<br />Error No: 1449<br />SELECT p.product_id,(SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating,(SELECT PRODUCT_PRICE(pd2.product_id,price,'RUB') FROM product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '2' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC,pd2.price ASC LIMIT 1) AS discount,(SELECT PRODUCT_PRICE(ps.product_id,price,'RUB') FROM product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '2' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC,ps.price ASC LIMIT 1) AS special FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY p.product_id ORDER BY p.date_available DESC,LCASE(pd.name) DESC LIMIT 0,12 in /var/www/mxl/data/www/popularelectronics.ru/system/library/db/mysqli.php on line 41
чего то много сложностей. Вся проблема в том, что видимо не знаем основных принципов переноса движка. Для начала почитать тут Потом подумать, что сделал не так! Скорей всего пытаетесь достучаться до чужой базы или чужими данными. Вы предварительно создали базу? Импортировали данные? Изменили все данные в config.php ???
Ну тут нет сложностей, действительно. На новом хостинге точная копия базы со старого, но с новыми данными: пользователь, пароль. В файлах config.php, что в админке, что в корне, четко приписаны параметры базы... логин.. пароль, наименование. Более того, в админской части и на витрине все осталось. .категории, новости, все статьи.. все это выводится и на витрину. Даже сохранилась пагинация в товарах в админсокй части. Но, все еще выдает ошибку: Спойлер 2015-05-29 16:02:31 - PHP Notice: Error: The user specified as a definer ('u7630_2'@'%') does not exist<br />Error No: 1449<br />SELECT p.product_id,(SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating,(SELECT PRODUCT_PRICE(pd2.product_id,price,'RUB') FROM product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '2' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC,pd2.price ASC LIMIT 1) AS discount,(SELECT PRODUCT_PRICE(ps.product_id,price,'RUB') FROM product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '2' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC,ps.price ASC LIMIT 1) AS special FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY p.product_id ORDER BY p.date_available DESC,LCASE(pd.name) DESC LIMIT 0,12 in /var/www/mxl/data/www/popularelectronics.ru/system/library/db/mysqli.php on line 41 2015-05-29 16:02:31 - PHP Notice: Trying to get property of non-object in /var/www/mxl/data/www/popularelectronics.ru/catalog/model/catalog/product.php on line 193 2015-05-29 16:02:31 - PHP Warning: Invalid argument supplied for foreach() in /var/www/mxl/data/www/popularelectronics.ru/catalog/model/catalog/product.php on line 193 , где u7630_2 это имя старого пользователя базы.. и именно поэтому есть проблемы с выводом продуктов. Это : Спойлер UPDATE `mysql`.`proc` p SET definer ='mxl' WHERE definer='u7630_2' AND db='dbname'; я уже делал. Не помогло.
Решено, баг был в одном из сторонних модулей, имеющих влияние на sql базу и содержавший в себе старые данные базы.
Добрый день. Уважаемый MxL, а подскажите как именно вы решили эту проблему. У меня просто все тоже самое. Но после того как обновился ипишник сервера.
У меня баг был в модуле, который не совместим с 2.xx и который перенесся с 1.5.6 на 2.0 с файлами после обновления. Руками вычистил все модули.
А подскажите пожалуйста, где именно искать. Я понимаю что все это делаеться руками. Просто прошу подсказать где именно и что искать? Наведите, пожалуйста.