добрый день, в админке делается бекап, все нормально, а при восстановление через админку в инструментах дает ошибку если файл заливать через phpmyadmin то все нормально отрабатывает, так же все нормально если просто скопировать и вставить SQL запрос в phpmyadmin баг опенкарта или что то другое ?
Ну как вариант, можно заменять транкейты на следующее: 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;
Например, тут пишут, что это нормальная тема для MariaBD ( https://dba.stackexchange.com/questions/28055/truncate-table-statement-sometimes-hangs и т.п.). Вообще тут еще может быть от версии зависит. Например, в MySQL 8.0.13 взяли и отменили возможность в группировке указывать сортировку))
спасибо конечно за советы, но 1. вообще то это дефолтный стандартный функционал опенкарт. извините за нескромный вопрос, вы функционал опенкарта знаете ? по дефолту ? 2. при чем тут вообще то что вы написали ? вы ошибку видели ? 3. да TRUNCATE тут не при чем, можно удалить эту строку, очистить таблицу и все равно даст ошибку по insert
Я пишу как решить проблему, пусть и через "конструкцию из грязи и палок". Так можно долго копаться (были как-то проблемы с MariaDB подобного рода - в результате просто запросы переписал - знаю не лучший подход, но как бы, насколько знаю, MariaDB это форк одной из старых версий MySQL - поэтому...). Вам что важнее полностью разобраться в этом? Могут уйти дни. Или восстановить бэкап один раз и дальше заниматься делом?
при чем тут вот это ? в инструментах опенкарт не создается таблица из из бекап, только записи. мне это вообще не нужно, я прекрасно и через phpmyadmin все могу сделать, это надо клиенту. он хочет периодически на всякий случай сохранять что бы можно было восстановить, и типа раз есть такой функционал он должен работать. а насчет этого полностью не согласен. MariaDB более производительная чем MySQL и более новее. но спорить не буду. пустая трата время считаю кого то в чем то переубеждать. на эту тему полно статей, кому надо сам почитает )
- Это ваше исходное сообщение. Соответственно, если вы хотите, чтобы бэкап восстанавливался из админки и происходит такая вот ситуёвина, то предложил решение. Правда это для небольших бэкапов. Перезаписывать текст в больших файлах это долго и проще тогда через phpmyadmin загружать. Так это не создание. Это транкейт таблицы через создание подобной таблицы, ренейма и дропа. По сути, тот же транкейт (понятно, что технически это разные вещи, но все же. - Ну так и предложил вариант решения, но, как уже писал, правда для небольших бэкапов. Речь вообще не об этом. MariaDB тоже развивается - это знаю. Речь о том, что форк давний. Это значит, что то, что нормально запускалось в MySQL, может некорректно запускаться в MariaDB. Это могут быть какие настройки. Это могут быть права доступа. И так далее.
Сейчас проверил окстор 2.3 . Вообще без проблем. У вас кстати хостинг или отдельный сервер (свои настройки, можно ковырять Mysql и т.п.)?
попробовал на тройке, все нормально отработало, так что проблема не базе, на тройке другой код, попробую его в 2.3 впихнуть.
Тоже вариант. Ну или кстати, можно тот код, что прислал, делать не во время поднятия бэкапа, а во время формирвания импорта. Найти строку с транкейтом и заменить на вышеуказанную конструкцию (делает тоже самое, и в MySql и в MariaDB вроде как должно поддерживаться без проблем). Это к той ситуации, если код, после переноса в 2.3, будет приводить к ошибкам.