#mysql #mariadb #hex
Вопрос:
Я создал резервную копию базы данных, содержащей изображения, сохраненные как LONG BLOB
s с использованием mysqldump
. Я не использовал --hex-blog
флаг, что, оглядываясь назад, возможно, было наивно.
При попытке восстановить резервную копию в нетронутую базу данных MariaDB выдал мне следующую ошибку:
ERROR 1064 (42000) at line 5169: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for
the right syntax to use near ''z?|txl?|?{??
??m?tq????{xkw' at line 1
После некоторых поисков я обнаружил, что эта ошибка возникает, например, если вы забываете экранировать защищенный символ в запросе. Я бы предположил, что некоторые шестнадцатеричные символы в длинном двоичном объекте интерпретируются как кавычки, и поэтому база данных пытается проанализировать это как SQL (при этом она терпит неудачу). Это правильно? И есть ли способ спасти эту ситуацию?
Комментарии:
1. Привет @julius. Использование
--hex-blob
не должно быть обязательным требованием для резервного копирования больших двоичных объектов. Так что это ошибка, с которой вы столкнулись. Если бы вы могли сообщить об этом в JIRA MariaDB в компоненте MDEV «Проекты, сценарии и клиенты», это было бы хорошо. Ваша версия сервера, ее конфигурация и какая версия клиента могли бы помочь. Если вы можете создать пример минимальной таблицы и создать ее резервную копию с помощью —hex-blob, это было бы идеально. Если это слишком конфиденциально, рассмотрите непубличную загрузку по ftp , доступную только разработчикам. Обратите внимание, что это там, на ДЖИРЕ.