Я не могу восстановить базу данных MySQL в экземпляре GCP MySQL

Я не могу восстановить базу данных MySQL в экземпляре GCP MySQL

Мне нужно было восстановить базу данных MySQL из файла SQL в хранилище GCP. Для этого я загрузил файл резервной копии базы данных в хранилище GCP, затем импортировал этот файл SQL в указанную базу данных в экземпляре GCP MySQL. Это заняло некоторое время, возникло исключение, которое было

 Import error: exit status 1 ERROR 1227 (42000) at line 10871: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

затем я попытался предоставить супер привилегии пользователю root или любому другому пользователю, но это все равно не сработало, хотя мне не разрешили предоставить супер привилегии, я понятия не имею, как решить эту проблему, любая помощь была бы очень признательна

Обновление (17 января 2020 г.): проблема, которую я решил

Я пытался найти строку, в которой произошло исключение

$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p пример.sql

и я нашел

/*!50013 ОПРЕДЕЛИТЕЛЬ= root@ localhostОПРЕДЕЛИТЕЛЬ БЕЗОПАСНОСТИ SQL */

затем я использовал эту команду, чтобы удалить оператор, в котором возникла проблема

cat пример.sql | sed -e 's/DEFINER= root@ localhost//g' > пример-ОЧИЩЕНО.sql

затем это сделано

решение1

Должны CURRENT_USERбыть SUPERпривилегии, но у текущего их DEFINERнет. Снова сделайте дамп с помощью mysqldump --skip-definer(это будет наименьшим усилием). Если это не вариант, отредактируйте дамп и либо удалите DEFINER, либо замените все его вхождения на CURRENT_USER. Определенные SETоператоры в дампе в конечном итоге также могут вызвать проблему.

Связанный контент