我是谷歌应用程序引擎的新手请帮我解决我的问题
我在导入SQL文件时在Google云sql中创建了一个实例,然后它显示我这样的错误。
ERWOR 1227(42000)第1088行:拒绝访问;您需要(至少一个)此操作的SUPER权限
如何为我的实例添加超级权限。
这是关于数据的导出。从控制台导出时,它会导出整个实例,而不仅仅是模式,这需要为创建它的项目提供SUPER权限。要将数据导出到另一个项目,只需通过在高级选项中定位架构来导出。如果遇到could not find storage or object
,将导出的模式保存到本地,然后上传到其他项目的存储,然后从那里选择它。
我也遇到了同样的问题。但问题出在转储的sql数据库中。导出数据库时使用这些标志
--hex-blob --skip-triggers --set-gtid-purged=OFF
以下是如何操作的完整文档(https://cloud.google.com/sql/docs/mysql/import-export/importing)。导出数据后,可以使用命令行,gcloud shell导入,也可以在import
中选择gcloud sql
。
我使用了import
控制台的gcloud sql
功能,它对我有用。
如果有人在2018年(至少是八月)搜索这个,解决方案是:
快乐的进口。
当将一个gzip压缩(从MySQL的5.1版本中使用mysqldump获取)反向移植到MySQL 5.6的Google Cloud SQL实例时,我遇到了同样的错误。 sql文件中的以下语句是问题所在:
DEFINER=`username`@`%`
对我有用的解决方案是使用sed
删除它的所有实例:
cat db-2018-08-30.sql | sed -e 's/DEFINER=`username`@`%`//g' > db-2018-08-30-CLEANED.sql
删除后,后端完成没有错误。显然,需要SUPER
特权才能运行DEFINER
,这在Google Cloud SQL中是不可用的。
另一个参考:Access denied; you need (at least one of) the SUPER privilege(s) for this operation
祝好运!