Ошибка при восстановление бекапа через админку

Тема в разделе "Ошибки и их решения", создана пользователем zema50, 7 авг 2022.

  1. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    добрый день, в админке делается бекап, все нормально, а при восстановление через админку в инструментах дает ошибку
    если файл заливать через phpmyadmin то все нормально отрабатывает, так же все нормально если просто скопировать и вставить SQL запрос в phpmyadmin
    баг опенкарта или что то другое ?
     
  2. Tom

    Tom Специалист

    Сообщения:
    688
    Симпатии:
    207
    Может там бэкап в 100500 гигов и для админки это элементарно много....
     
  3. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    улыбнуло )))
    тестил одну таблицу бекап в одну строку (
    все ))) весь бекап.
     
  4. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Ну как вариант, можно заменять транкейты на следующее:

    CREATE TABLE log_table_new LIKE log_table;
    RENAME TABLE log_table TO log_table_old, log_table_new TO log_table;
    DROP TABLE log_table_old;
     
  5. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Ну и еще сбрасывать автоинкремент
    ALTER TABLE `таблица` AUTO_INCREMENT = 0;
     
  6. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Например, тут пишут, что это нормальная тема для MariaBD ( https://dba.stackexchange.com/questions/28055/truncate-table-statement-sometimes-hangs и т.п.).

    Вообще тут еще может быть от версии зависит. Например, в MySQL 8.0.13 взяли и отменили возможность в группировке указывать сортировку))
     
  7. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    спасибо конечно за советы, но
    1. вообще то это дефолтный стандартный функционал опенкарт.
    извините за нескромный вопрос, вы функционал опенкарта знаете ? по дефолту ?
    2. при чем тут вообще то что вы написали ? вы ошибку видели ?
    3. да TRUNCATE тут не при чем, можно удалить эту строку, очистить таблицу и все равно даст ошибку по insert
     
  8. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Я пишу как решить проблему, пусть и через "конструкцию из грязи и палок". Так можно долго копаться (были как-то проблемы с MariaDB подобного рода - в результате просто запросы переписал - знаю не лучший подход, но как бы, насколько знаю, MariaDB это форк одной из старых версий MySQL - поэтому...). Вам что важнее полностью разобраться в этом? Могут уйти дни. Или восстановить бэкап один раз и дальше заниматься делом?
     
  9. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    при чем тут вот это ?
    в инструментах опенкарт не создается таблица из из бекап, только записи.
    мне это вообще не нужно, я прекрасно и через phpmyadmin все могу сделать, это надо клиенту. он хочет периодически на всякий случай сохранять что бы можно было восстановить, и типа раз есть такой функционал он должен работать.
    а насчет этого
    полностью не согласен.
    MariaDB более производительная чем MySQL и более новее. но спорить не буду. пустая трата время считаю кого то в чем то переубеждать. на эту тему полно статей, кому надо сам почитает )
     
  10. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    - Это ваше исходное сообщение. Соответственно, если вы хотите, чтобы бэкап восстанавливался из админки и происходит такая вот ситуёвина, то предложил решение. Правда это для небольших бэкапов. Перезаписывать текст в больших файлах это долго и проще тогда через phpmyadmin загружать.

    Так это не создание. Это транкейт таблицы через создание подобной таблицы, ренейма и дропа. По сути, тот же транкейт (понятно, что технически это разные вещи, но все же.

    - Ну так и предложил вариант решения, но, как уже писал, правда для небольших бэкапов.

    Речь вообще не об этом. MariaDB тоже развивается - это знаю. Речь о том, что форк давний. Это значит, что то, что нормально запускалось в MySQL, может некорректно запускаться в MariaDB.

    Это могут быть какие настройки. Это могут быть права доступа. И так далее.
     
  11. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    может быть вас это огорчит, но пробовал на MySQL 5.7 та же ошибка
     
  12. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    А что за версия опенкарта? Конкретно. Проверю у себя в тестовом сервере.
     
  13. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Попробовал Opencart 3.0.3.7 - вообще без проблем
     
  14. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    2.3 про, для интереса пробовал на ocStore-2.3.0.2.3 одинаковая ошибка, код для бекапа одинаковый )
     
  15. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Сейчас проверил окстор 2.3 . Вообще без проблем. У вас кстати хостинг или отдельный сервер (свои настройки, можно ковырять Mysql и т.п.)?
     
  16. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    840
    Симпатии:
    94
    попробовал на тройке, все нормально отработало, так что проблема не базе, на тройке другой код, попробую его в 2.3 впихнуть.
     
  17. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    753
    Симпатии:
    101
    Тоже вариант. Ну или кстати, можно тот код, что прислал, делать не во время поднятия бэкапа, а во время формирвания импорта. Найти строку с транкейтом и заменить на вышеуказанную конструкцию (делает тоже самое, и в MySql и в MariaDB вроде как должно поддерживаться без проблем). Это к той ситуации, если код, после переноса в 2.3, будет приводить к ошибкам.