
Me cansé de restaurar una base de datos MySQL desde un archivo SQL dentro del almacenamiento de GCP, el paso fue cargar el archivo de respaldo de mi base de datos en el almacenamiento de GCP, luego importé este archivo SQL a una base de datos específica dentro de la instancia de MySQL de GCP, me tomó un tiempo. se produjo la excepción que fue
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
luego intenté otorgar súper privilegios al root o a cualquier otro usuario, pero no funcionó de todos modos, aunque no me permitió otorgar súper privilegios, no tengo idea de cómo resolver este problema, cualquier ayuda sería de gran ayuda. apreciado
Actualización (17 de enero de 2020): el problema que he resuelto
Intenté encontrar la línea en la que se produjo la excepción.
$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p ejemplo.sql
y encontré
/*!50013 DEFINER= root
@ localhost
DEFINIDOR DE SEGURIDAD SQL */
luego utilicé este comando para eliminar la declaración que tiene problemas
ejemplo de gato.sql | sed -e 's/DEFINER= root
@ localhost
//g' > ejemplo-CLEANED.sql
entonces se hizo
Respuesta1
El CURRENT_USER
debería tener SUPER
privilegios, pero el actual DEFINER
no. Vuelve a tirarlo mysqldump --skip-definer
(sería el menor esfuerzo). Si esto no debería ser una opción, edite el volcado y elimine el archivo DEFINER
o reemplace todas sus apariciones con el archivo CURRENT_USER
. Ciertas SET
declaraciones en el vertedero también podrían causar el problema.