Исчез товар из админки и витрины

Тема в разделе "Ошибки и их решения", создана пользователем MxL, 29 май 2015.

  1. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Добрый день! Перенес сайт на новых хостинг.. на 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
     

    Вложения:

    • sshot-9.png
      sshot-9.png
      Размер файла:
      16,2 КБ
      Просмотров:
      5
    Последнее редактирование: 29 май 2015
  2. mars1an

    mars1an Специалист

    Сообщения:
    621
    Симпатии:
    500
    Это значит что у пользователя mxl недостаточно прав на таблицы БД.
    Если VDS, то, скорее всего, должен быть не localhos а хост VDS'ки. Ну и проверить конечно права к каждой таблице.
     
  3. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Ага! Где смотреть? В настройках хостинга? Ведь остальная часть базы отображается корректно...
     
  4. mars1an

    mars1an Специалист

    Сообщения:
    621
    Симпатии:
    500
    Зайдя под рутом, дать полные права через phpMyAdmin, либо в mysql консоле:
    Код:
    GRANT ALL ON DB_NAME.* TO 'USER'@'HOST' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
     
  5. Ravilr

    Ravilr Специалист

    Сообщения:
    3.156
    Симпатии:
    873
    а вам удобно на такую портянку смотреть? Хоть бы в спойлер спрятали или в теги code
     
  6. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Хммм .. дал все привилегии... появилась новая ошибка, где фигурирует старый логин от базы:
    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
     
  7. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Пардон, исправлюсь
     
  8. mars1an

    mars1an Специалист

    Сообщения:
    621
    Симпатии:
    500
    Код:
    UPDATE `mysql`.`proc` p SET definer ='mxl' WHERE definer='u7630_2' AND db='dbname';
     
    Последнее редактирование: 29 май 2015
    MxL нравится это.
  9. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Да )) ошибки исчезли в админке.. а товар не появился... голову сломал уже
     
  10. mars1an

    mars1an Специалист

    Сообщения:
    621
    Симпатии:
    500
    Значит надо ошибки апача/нгинкса посмотреть.
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.156
    Симпатии:
    873
    чего то много сложностей. Вся проблема в том, что видимо не знаем основных принципов переноса движка.
    Для начала почитать тут
    Потом подумать, что сделал не так!

    Скорей всего пытаетесь достучаться до чужой базы или чужими данными.

    Вы предварительно создали базу? Импортировали данные? Изменили все данные в config.php ???
     
  12. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Ну тут нет сложностей, действительно. На новом хостинге точная копия базы со старого, но с новыми данными: пользователь, пароль. В файлах 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';
    я уже делал. Не помогло.
     
  13. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    Решено, баг был в одном из сторонних модулей, имеющих влияние на sql базу и содержавший в себе старые данные базы.
     
  14. Program.87

    Program.87 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Добрый день.
    Уважаемый MxL, а подскажите как именно вы решили эту проблему. У меня просто все тоже самое. Но после того как обновился ипишник сервера.
     
  15. MxL

    MxL Пользователь

    Сообщения:
    48
    Симпатии:
    1
    У меня баг был в модуле, который не совместим с 2.xx и который перенесся с 1.5.6 на 2.0 с файлами после обновления. Руками вычистил все модули.
     
  16. Program.87

    Program.87 Новичок

    Сообщения:
    2
    Симпатии:
    0
    А подскажите пожалуйста, где именно искать. Я понимаю что все это делаеться руками. Просто прошу подсказать где именно и что искать? Наведите, пожалуйста.