我无法在 GCP MySQL 实例中恢复 mysql 数据库

我无法在 GCP MySQL 实例中恢复 mysql 数据库

我尝试从 GCP 存储中的 sql 文件恢复 MySQL 数据库,步骤是将数据库备份文件上传到 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 或任何其他用户超级权限,但无论如何它不起作用,它不允许我授予超级权限,我不知道如何解决这个问题,任何帮助都将不胜感激

更新(2020 年 1 月 17 日):我已解决的问题

我试图找到发生异常的那一行

$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p 示例.sql

我发现

/*!50013 定义者= root@ localhostSQL 安全定义者 */

然后我用这个命令删除了有问题的语句

cat example.sql | sed -e 's/DEFINER= root@ localhost//g' > example-CLEANED.sql

然后就完成了

答案1

应该CURRENT_USER具有SUPER权限,但当前DEFINER没有。再次使用 转储它mysqldump --skip-definer(这将是最省力的方法)。如果这不应该是一个选项,请编辑转储并删除DEFINER,或将其所有出现替换为CURRENT_USERSET转储中的某些语句最终也可能导致问题。

相关内容